blob: c07f6bf46020bf262c9e5a2d28eb39bd9b3ec127 [file] [log] [blame]
Nika Layzell27726662017-10-24 23:16:35 -04001// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
2
3//! A Folder represents an AST->AST fold; it accepts an AST piece,
4//! and returns a piece of the same type.
5
David Tolnay0afc9b32017-12-27 13:38:24 -05006#![cfg_attr(rustfmt, rustfmt_skip)]
7
Nika Layzell27726662017-10-24 23:16:35 -04008// Unreachable code is generated sometimes without the full feature.
9#![allow(unreachable_code)]
David Tolnayf0d63bf2017-12-26 12:29:47 -050010#![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))]
Nika Layzell27726662017-10-24 23:16:35 -040011
Nika Layzella6f46c42017-10-26 15:26:16 -040012use *;
David Tolnayc5ab8c62017-12-26 16:43:39 -050013use delimited::Delimited;
David Tolnay98942562017-12-26 21:24:35 -050014use proc_macro2::Span;
Nika Layzell27726662017-10-24 23:16:35 -040015
16trait FoldHelper {
17 type Item;
18 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item;
19}
20
21impl<T> FoldHelper for Vec<T> {
22 type Item = T;
23 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
24 self.into_iter().map(f).collect()
25 }
26}
27
28impl<T, U> FoldHelper for Delimited<T, U> {
29 type Item = T;
30 fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
31 self.into_iter().map(|elem| {
32 let (t, u) = elem.into_tuple();
33 (f(t), u)
34 }).collect::<Vec<(T, Option<U>)>>().into()
35 }
36}
37
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040038
39#[cfg(feature = "full")]
40macro_rules! full {
41 ($e:expr) => { $e }
42}
43
44#[cfg(not(feature = "full"))]
45macro_rules! full {
46 ($e:expr) => { unreachable!() }
47}
48
49
Nika Layzell27726662017-10-24 23:16:35 -040050/// AST->AST fold.
51///
52/// Each method of the Folder trait is a hook to be potentially overridden. Each
53/// method's default implementation recursively visits the substructure of the
54/// input via the `walk` functions, which perform an "identity fold", that
55/// is, they return the same structure that they are given (for example the
56/// `fold_file` method by default calls `fold::walk_file`).
57///
58/// If you want to ensure that your code handles every variant
59/// explicitly, you need to override each method. (And you also need
60/// to monitor future changes to `Folder` in case a new method with a
61/// new default implementation gets introduced.)
62pub trait Folder {
63
Nika Layzella6f46c42017-10-26 15:26:16 -040064fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040065
Nika Layzella6f46c42017-10-26 15:26:16 -040066fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040067
Nika Layzellc08227a2017-12-04 16:30:17 -050068fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040069# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040070fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040071# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040072fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040073# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040074fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040075# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040076fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040077
Nika Layzella6f46c42017-10-26 15:26:16 -040078fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040079
Nika Layzella6f46c42017-10-26 15:26:16 -040080fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040081
Nika Layzella6f46c42017-10-26 15:26:16 -040082fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040083
Nika Layzella6f46c42017-10-26 15:26:16 -040084fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040085
David Tolnayfd6bf5c2017-11-12 09:41:14 -080086fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040087
Nika Layzella6f46c42017-10-26 15:26:16 -040088fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040089# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040090fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040091# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040092fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040093
Nika Layzella6f46c42017-10-26 15:26:16 -040094fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040095
Nika Layzella6f46c42017-10-26 15:26:16 -040096fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040097
Nika Layzella6f46c42017-10-26 15:26:16 -040098fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040099
Nika Layzella6f46c42017-10-26 15:26:16 -0400100fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400101# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400102fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500103
104fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400105# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400106fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400107# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400108fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400109
Nika Layzella6f46c42017-10-26 15:26:16 -0400110fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400111
Nika Layzella6f46c42017-10-26 15:26:16 -0400112fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400113# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400114fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400115# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400116fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400117# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400118fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400119# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400120fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400121
Nika Layzella6f46c42017-10-26 15:26:16 -0400122fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400123# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400124fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400125# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400126fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400127# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400128fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400129
Nika Layzella6f46c42017-10-26 15:26:16 -0400130fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400131
Nika Layzella6f46c42017-10-26 15:26:16 -0400132fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400133# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400134fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400135# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400136fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400137# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400138fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400139# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400140fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400141# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400142fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400143
Nika Layzella6f46c42017-10-26 15:26:16 -0400144fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400145# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400146fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400147# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400148fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400149# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400150fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400151
Nika Layzella6f46c42017-10-26 15:26:16 -0400152fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400153
Nika Layzella6f46c42017-10-26 15:26:16 -0400154fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400155# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400156fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400157# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400158fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400159# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400160fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400161
Nika Layzella6f46c42017-10-26 15:26:16 -0400162fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400163
Nika Layzella6f46c42017-10-26 15:26:16 -0400164fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400165# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400166fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400167# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400168fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400169# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400170fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400171# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400172fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400173# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400174fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400175# [ cfg ( feature = "full" ) ]
David Tolnay05362582017-12-26 01:33:57 -0500176fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple { fold_expr_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400177
Nika Layzella6f46c42017-10-26 15:26:16 -0400178fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400179
Nika Layzella6f46c42017-10-26 15:26:16 -0400180fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400181# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500182fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
183# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400184fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400185# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400186fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400187# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400188fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400189
Nika Layzella6f46c42017-10-26 15:26:16 -0400190fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400191# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400192fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400193# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400194fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400195# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400196fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400197# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400198fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400199# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400200fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400201# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400202fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400203# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400204fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400205# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400206fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800207# [ cfg ( feature = "full" ) ]
208fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400209
Nika Layzellc08227a2017-12-04 16:30:17 -0500210fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500211
David Tolnayc2f1aba2017-11-12 20:29:22 -0800212fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
213
Nika Layzella6f46c42017-10-26 15:26:16 -0400214fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500215
216fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400217# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400218fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400219# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400220fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400221# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800222fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400223# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400224fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400225# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400226fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400227# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400228fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400229# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400230fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400231# [ cfg ( feature = "full" ) ]
David Tolnay85b69a42017-12-27 20:43:10 -0500232fn fold_index(&mut self, i: Index) -> Index { fold_index(self, i) }
233# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400234fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400235# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400236fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400237# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400238fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400239# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400240fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400241# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400242fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400243# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400244fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400245# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400246fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400247# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400248fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400249# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800250fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400251# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800252fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
253# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400254fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400255# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400256fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400257# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400258fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400259# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400260fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400261# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800262fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400263# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400264fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400265# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400266fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400267
Nika Layzella6f46c42017-10-26 15:26:16 -0400268fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400269# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400270fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400271# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400272fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400273
David Tolnaydecf28d2017-11-11 11:56:45 -0800274fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
David Tolnay85b69a42017-12-27 20:43:10 -0500275# [ cfg ( feature = "full" ) ]
276fn fold_member(&mut self, i: Member) -> Member { fold_member(self, i) }
David Tolnaydecf28d2017-11-11 11:56:45 -0800277
Nika Layzella6f46c42017-10-26 15:26:16 -0400278fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400279
Nika Layzella6f46c42017-10-26 15:26:16 -0400280fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400281
Nika Layzella6f46c42017-10-26 15:26:16 -0400282fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400283# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400284fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400285
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800286fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400287
Nika Layzella6f46c42017-10-26 15:26:16 -0400288fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400289
Nika Layzella6f46c42017-10-26 15:26:16 -0400290fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400291
Nika Layzellc08227a2017-12-04 16:30:17 -0500292fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400293# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400294fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400295# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400296fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400297# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400298fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400299# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400300fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400301# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400302fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400303# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400304fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400305# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400306fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400307# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400308fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400309# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400310fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400311# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400312fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400313# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400314fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400315# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400316fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400317
Nika Layzella6f46c42017-10-26 15:26:16 -0400318fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500319
320fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400321
Nika Layzella6f46c42017-10-26 15:26:16 -0400322fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400323
Nika Layzella6f46c42017-10-26 15:26:16 -0400324fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400325
Nika Layzella6f46c42017-10-26 15:26:16 -0400326fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400327# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400328fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800329
330fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500331
332fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400333# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400334fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400335
Nika Layzella6f46c42017-10-26 15:26:16 -0400336fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400337# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400338fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400339# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400340fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400341# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800342fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400343# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400344fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400345# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400346fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400347
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800348fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400349
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800350fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400351
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800352fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400353
Nika Layzella6f46c42017-10-26 15:26:16 -0400354fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400355
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800356fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
357
358fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
359
360fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
361
362fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
363
364fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
365
366fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
367
368fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
369
370fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
371
372fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
373
David Tolnay0a89b4d2017-11-13 00:55:45 -0800374fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800375
376fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
377
378fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
379
David Tolnay05362582017-12-26 01:33:57 -0500380fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple { fold_type_tuple(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800381
Nika Layzella6f46c42017-10-26 15:26:16 -0400382fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400383
Nika Layzella6f46c42017-10-26 15:26:16 -0400384fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
David Tolnay5f332a92017-12-26 00:42:45 -0500385# [ cfg ( feature = "full" ) ]
386fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob { fold_use_glob(self, i) }
387# [ cfg ( feature = "full" ) ]
388fn fold_use_list(&mut self, i: UseList) -> UseList { fold_use_list(self, i) }
389# [ cfg ( feature = "full" ) ]
390fn fold_use_path(&mut self, i: UsePath) -> UsePath { fold_use_path(self, i) }
391# [ cfg ( feature = "full" ) ]
392fn fold_use_tree(&mut self, i: UseTree) -> UseTree { fold_use_tree(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400393
Nika Layzella6f46c42017-10-26 15:26:16 -0400394fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400395
Nika Layzella6f46c42017-10-26 15:26:16 -0400396fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400397
Nika Layzella6f46c42017-10-26 15:26:16 -0400398fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400399
Nika Layzella6f46c42017-10-26 15:26:16 -0400400fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400401
Nika Layzella6f46c42017-10-26 15:26:16 -0400402fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400403
Nika Layzella6f46c42017-10-26 15:26:16 -0400404fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400405
Nika Layzella6f46c42017-10-26 15:26:16 -0400406fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400407
Nika Layzella6f46c42017-10-26 15:26:16 -0400408fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400409
Nika Layzella6f46c42017-10-26 15:26:16 -0400410fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400411
Nika Layzella6f46c42017-10-26 15:26:16 -0400412fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400413
Nika Layzella6f46c42017-10-26 15:26:16 -0400414fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400415
Nika Layzella6f46c42017-10-26 15:26:16 -0400416fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400417
418}
419
420
Nika Layzella6f46c42017-10-26 15:26:16 -0400421pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400422 Abi {
423 extern_token: _i . extern_token,
424 kind: _visitor.fold_abi_kind(_i . kind),
425 }
426}
427
Nika Layzella6f46c42017-10-26 15:26:16 -0400428pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400429 use ::AbiKind::*;
430 match _i {
431 Named(_binding_0, ) => {
432 Named (
433 _binding_0,
434 )
435 }
436 Default => { Default }
437 }
438}
439
Nika Layzellc08227a2017-12-04 16:30:17 -0500440pub fn fold_angle_bracketed_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments {
441 AngleBracketedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -0400442 turbofish: _i . turbofish,
443 lt_token: _i . lt_token,
Nika Layzellc08227a2017-12-04 16:30:17 -0500444 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_generic_argument(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400445 gt_token: _i . gt_token,
446 }
447}
448# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400449pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400450 ArgCaptured {
451 pat: _visitor.fold_pat(_i . pat),
452 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800453 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400454 }
455}
456# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400457pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400458 ArgSelf {
459 mutbl: _visitor.fold_mutability(_i . mutbl),
460 self_token: _i . self_token,
461 }
462}
463# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400464pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400465 ArgSelfRef {
466 and_token: _i . and_token,
467 self_token: _i . self_token,
468 lifetime: _i . lifetime,
469 mutbl: _visitor.fold_mutability(_i . mutbl),
470 }
471}
472# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400473pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400474 Arm {
475 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
476 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
477 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400478 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400479 rocket_token: _i . rocket_token,
480 body: Box::new(_visitor.fold_expr(* _i . body)),
481 comma: _i . comma,
482 }
483}
484
Nika Layzella6f46c42017-10-26 15:26:16 -0400485pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400486 use ::AttrStyle::*;
487 match _i {
488 Outer => { Outer }
489 Inner(_binding_0, ) => {
490 Inner (
491 _binding_0,
492 )
493 }
494 }
495}
496
Nika Layzella6f46c42017-10-26 15:26:16 -0400497pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400498 Attribute {
499 style: _visitor.fold_attr_style(_i . style),
500 pound_token: _i . pound_token,
501 bracket_token: _i . bracket_token,
502 path: _visitor.fold_path(_i . path),
503 tts: _i . tts,
504 is_sugared_doc: _i . is_sugared_doc,
505 }
506}
507
Nika Layzella6f46c42017-10-26 15:26:16 -0400508pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400509 BareFnArg {
510 name: _i . name,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800511 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400512 }
513}
514
Nika Layzella6f46c42017-10-26 15:26:16 -0400515pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400516 use ::BareFnArgName::*;
517 match _i {
518 Named(_binding_0, ) => {
519 Named (
Nika Layzellefb83ba2017-12-19 18:23:55 -0500520 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400521 )
522 }
523 Wild(_binding_0, ) => {
524 Wild (
525 _binding_0,
526 )
527 }
528 }
529}
530
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800531pub fn fold_bare_fn_type<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnType) -> BareFnType {
532 BareFnType {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400533 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400534 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400535 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400536 fn_token: _i . fn_token,
537 paren_token: _i . paren_token,
538 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
539 variadic: _i . variadic,
David Tolnayf93b90d2017-11-11 19:21:26 -0800540 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -0400541 }
542}
543
Nika Layzella6f46c42017-10-26 15:26:16 -0400544pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400545 use ::BinOp::*;
546 match _i {
547 Add(_binding_0, ) => {
548 Add (
549 _binding_0,
550 )
551 }
552 Sub(_binding_0, ) => {
553 Sub (
554 _binding_0,
555 )
556 }
557 Mul(_binding_0, ) => {
558 Mul (
559 _binding_0,
560 )
561 }
562 Div(_binding_0, ) => {
563 Div (
564 _binding_0,
565 )
566 }
567 Rem(_binding_0, ) => {
568 Rem (
569 _binding_0,
570 )
571 }
572 And(_binding_0, ) => {
573 And (
574 _binding_0,
575 )
576 }
577 Or(_binding_0, ) => {
578 Or (
579 _binding_0,
580 )
581 }
582 BitXor(_binding_0, ) => {
583 BitXor (
584 _binding_0,
585 )
586 }
587 BitAnd(_binding_0, ) => {
588 BitAnd (
589 _binding_0,
590 )
591 }
592 BitOr(_binding_0, ) => {
593 BitOr (
594 _binding_0,
595 )
596 }
597 Shl(_binding_0, ) => {
598 Shl (
599 _binding_0,
600 )
601 }
602 Shr(_binding_0, ) => {
603 Shr (
604 _binding_0,
605 )
606 }
607 Eq(_binding_0, ) => {
608 Eq (
609 _binding_0,
610 )
611 }
612 Lt(_binding_0, ) => {
613 Lt (
614 _binding_0,
615 )
616 }
617 Le(_binding_0, ) => {
618 Le (
619 _binding_0,
620 )
621 }
622 Ne(_binding_0, ) => {
623 Ne (
624 _binding_0,
625 )
626 }
627 Ge(_binding_0, ) => {
628 Ge (
629 _binding_0,
630 )
631 }
632 Gt(_binding_0, ) => {
633 Gt (
634 _binding_0,
635 )
636 }
637 AddEq(_binding_0, ) => {
638 AddEq (
639 _binding_0,
640 )
641 }
642 SubEq(_binding_0, ) => {
643 SubEq (
644 _binding_0,
645 )
646 }
647 MulEq(_binding_0, ) => {
648 MulEq (
649 _binding_0,
650 )
651 }
652 DivEq(_binding_0, ) => {
653 DivEq (
654 _binding_0,
655 )
656 }
657 RemEq(_binding_0, ) => {
658 RemEq (
659 _binding_0,
660 )
661 }
662 BitXorEq(_binding_0, ) => {
663 BitXorEq (
664 _binding_0,
665 )
666 }
667 BitAndEq(_binding_0, ) => {
668 BitAndEq (
669 _binding_0,
670 )
671 }
672 BitOrEq(_binding_0, ) => {
673 BitOrEq (
674 _binding_0,
675 )
676 }
677 ShlEq(_binding_0, ) => {
678 ShlEq (
679 _binding_0,
680 )
681 }
682 ShrEq(_binding_0, ) => {
683 ShrEq (
684 _binding_0,
685 )
686 }
687 }
688}
689# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400690pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400691 use ::BindingMode::*;
692 match _i {
693 ByRef(_binding_0, _binding_1, ) => {
694 ByRef (
695 _binding_0,
696 _visitor.fold_mutability(_binding_1),
697 )
698 }
699 ByValue(_binding_0, ) => {
700 ByValue (
701 _visitor.fold_mutability(_binding_0),
702 )
703 }
704 }
705}
706# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400707pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400708 Block {
709 brace_token: _i . brace_token,
710 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
711 }
712}
713
Nika Layzella6f46c42017-10-26 15:26:16 -0400714pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400715 use ::Body::*;
716 match _i {
717 Enum(_binding_0, ) => {
718 Enum (
719 _visitor.fold_body_enum(_binding_0),
720 )
721 }
722 Struct(_binding_0, ) => {
723 Struct (
724 _visitor.fold_body_struct(_binding_0),
725 )
726 }
727 }
728}
729
Nika Layzella6f46c42017-10-26 15:26:16 -0400730pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400731 BodyEnum {
732 enum_token: _i . enum_token,
733 brace_token: _i . brace_token,
734 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
735 }
736}
737
Nika Layzella6f46c42017-10-26 15:26:16 -0400738pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400739 BodyStruct {
740 data: _visitor.fold_variant_data(_i . data),
741 struct_token: _i . struct_token,
742 semi_token: _i . semi_token,
743 }
744}
745
Nika Layzella6f46c42017-10-26 15:26:16 -0400746pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400747 BoundLifetimes {
748 for_token: _i . for_token,
749 lt_token: _i . lt_token,
750 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
751 gt_token: _i . gt_token,
752 }
753}
754# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400755pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400756 use ::CaptureBy::*;
757 match _i {
758 Value(_binding_0, ) => {
759 Value (
760 _binding_0,
761 )
762 }
763 Ref => { Ref }
764 }
765}
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500766
767pub fn fold_const_param<V: Folder + ?Sized>(_visitor: &mut V, _i: ConstParam) -> ConstParam {
768 ConstParam {
769 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
770 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -0500771 ident: _visitor.fold_ident(_i . ident),
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500772 colon_token: _i . colon_token,
773 ty: _visitor.fold_type(_i . ty),
774 eq_token: _i . eq_token,
775 default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
776 }
777}
Nika Layzell27726662017-10-24 23:16:35 -0400778# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400779pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400780 use ::Constness::*;
781 match _i {
782 Const(_binding_0, ) => {
783 Const (
784 _binding_0,
785 )
786 }
787 NotConst => { NotConst }
788 }
789}
790# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400791pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400792 use ::Defaultness::*;
793 match _i {
794 Default(_binding_0, ) => {
795 Default (
796 _binding_0,
797 )
798 }
799 Final => { Final }
800 }
801}
802
Nika Layzella6f46c42017-10-26 15:26:16 -0400803pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400804 DeriveInput {
Nika Layzellefb83ba2017-12-19 18:23:55 -0500805 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -0400806 vis: _visitor.fold_visibility(_i . vis),
807 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
808 generics: _visitor.fold_generics(_i . generics),
809 body: _visitor.fold_body(_i . body),
810 }
811}
812
Nika Layzella6f46c42017-10-26 15:26:16 -0400813pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400814 Expr {
815 node: _visitor.fold_expr_kind(_i . node),
816 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
817 }
818}
819# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400820pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400821 ExprAddrOf {
822 and_token: _i . and_token,
823 mutbl: _visitor.fold_mutability(_i . mutbl),
824 expr: Box::new(_visitor.fold_expr(* _i . expr)),
825 }
826}
827# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400828pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400829 ExprArray {
830 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
831 bracket_token: _i . bracket_token,
832 }
833}
834# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400835pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400836 ExprAssign {
837 left: Box::new(_visitor.fold_expr(* _i . left)),
838 right: Box::new(_visitor.fold_expr(* _i . right)),
839 eq_token: _i . eq_token,
840 }
841}
842# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400843pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400844 ExprAssignOp {
845 op: _visitor.fold_bin_op(_i . op),
846 left: Box::new(_visitor.fold_expr(* _i . left)),
847 right: Box::new(_visitor.fold_expr(* _i . right)),
848 }
849}
850
Nika Layzella6f46c42017-10-26 15:26:16 -0400851pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400852 ExprBinary {
853 op: _visitor.fold_bin_op(_i . op),
854 left: Box::new(_visitor.fold_expr(* _i . left)),
855 right: Box::new(_visitor.fold_expr(* _i . right)),
856 }
857}
858# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400859pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400860 ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400861 block: _visitor.fold_block(_i . block),
862 }
863}
864# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400865pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400866 ExprBox {
867 expr: Box::new(_visitor.fold_expr(* _i . expr)),
868 box_token: _i . box_token,
869 }
870}
871# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400872pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400873 ExprBreak {
874 label: _i . label,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400875 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400876 break_token: _i . break_token,
877 }
878}
879
Nika Layzella6f46c42017-10-26 15:26:16 -0400880pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400881 ExprCall {
882 func: Box::new(_visitor.fold_expr(* _i . func)),
883 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
884 paren_token: _i . paren_token,
885 }
886}
887
Nika Layzella6f46c42017-10-26 15:26:16 -0400888pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400889 ExprCast {
890 expr: Box::new(_visitor.fold_expr(* _i . expr)),
891 as_token: _i . as_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800892 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -0400893 }
894}
895# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400896pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400897 ExprCatch {
898 do_token: _i . do_token,
899 catch_token: _i . catch_token,
900 block: _visitor.fold_block(_i . block),
901 }
902}
903# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400904pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400905 ExprClosure {
906 capture: _visitor.fold_capture_by(_i . capture),
Nika Layzell27726662017-10-24 23:16:35 -0400907 or1_token: _i . or1_token,
David Tolnay7f675742017-12-27 22:43:21 -0500908 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400909 or2_token: _i . or2_token,
David Tolnay7f675742017-12-27 22:43:21 -0500910 output: _visitor.fold_return_type(_i . output),
911 body: Box::new(_visitor.fold_expr(* _i . body)),
Nika Layzell27726662017-10-24 23:16:35 -0400912 }
913}
914# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400915pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400916 ExprContinue {
917 label: _i . label,
918 continue_token: _i . continue_token,
919 }
920}
921# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400922pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400923 ExprField {
David Tolnay85b69a42017-12-27 20:43:10 -0500924 base: Box::new(_visitor.fold_expr(* _i . base)),
Nika Layzell27726662017-10-24 23:16:35 -0400925 dot_token: _i . dot_token,
David Tolnay85b69a42017-12-27 20:43:10 -0500926 member: _visitor.fold_member(_i . member),
Nika Layzell27726662017-10-24 23:16:35 -0400927 }
928}
929# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400930pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400931 ExprForLoop {
932 pat: Box::new(_visitor.fold_pat(* _i . pat)),
933 expr: Box::new(_visitor.fold_expr(* _i . expr)),
934 body: _visitor.fold_block(_i . body),
935 label: _i . label,
936 for_token: _i . for_token,
937 colon_token: _i . colon_token,
938 in_token: _i . in_token,
939 }
940}
941
Nika Layzella6f46c42017-10-26 15:26:16 -0400942pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400943 ExprGroup {
944 expr: Box::new(_visitor.fold_expr(* _i . expr)),
945 group_token: _i . group_token,
946 }
947}
948# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400949pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400950 ExprIf {
951 cond: Box::new(_visitor.fold_expr(* _i . cond)),
952 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400953 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400954 if_token: _i . if_token,
955 else_token: _i . else_token,
956 }
957}
958# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400959pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400960 ExprIfLet {
961 pat: Box::new(_visitor.fold_pat(* _i . pat)),
962 expr: Box::new(_visitor.fold_expr(* _i . expr)),
963 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400964 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400965 if_token: _i . if_token,
966 let_token: _i . let_token,
967 eq_token: _i . eq_token,
968 else_token: _i . else_token,
969 }
970}
971# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400972pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400973 ExprInPlace {
974 place: Box::new(_visitor.fold_expr(* _i . place)),
975 kind: _visitor.fold_in_place_kind(_i . kind),
976 value: Box::new(_visitor.fold_expr(* _i . value)),
977 }
978}
979
Nika Layzella6f46c42017-10-26 15:26:16 -0400980pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400981 ExprIndex {
982 expr: Box::new(_visitor.fold_expr(* _i . expr)),
983 index: Box::new(_visitor.fold_expr(* _i . index)),
984 bracket_token: _i . bracket_token,
985 }
986}
987
Nika Layzella6f46c42017-10-26 15:26:16 -0400988pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400989 use ::ExprKind::*;
990 match _i {
991 Box(_binding_0, ) => {
992 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400993 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400994 )
995 }
996 InPlace(_binding_0, ) => {
997 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400998 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400999 )
1000 }
1001 Array(_binding_0, ) => {
1002 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001003 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001004 )
1005 }
1006 Call(_binding_0, ) => {
1007 Call (
1008 _visitor.fold_expr_call(_binding_0),
1009 )
1010 }
1011 MethodCall(_binding_0, ) => {
1012 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001013 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001014 )
1015 }
David Tolnay05362582017-12-26 01:33:57 -05001016 Tuple(_binding_0, ) => {
1017 Tuple (
1018 full!(_visitor.fold_expr_tuple(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001019 )
1020 }
1021 Binary(_binding_0, ) => {
1022 Binary (
1023 _visitor.fold_expr_binary(_binding_0),
1024 )
1025 }
1026 Unary(_binding_0, ) => {
1027 Unary (
1028 _visitor.fold_expr_unary(_binding_0),
1029 )
1030 }
1031 Lit(_binding_0, ) => {
1032 Lit (
1033 _binding_0,
1034 )
1035 }
1036 Cast(_binding_0, ) => {
1037 Cast (
1038 _visitor.fold_expr_cast(_binding_0),
1039 )
1040 }
1041 Type(_binding_0, ) => {
1042 Type (
1043 _visitor.fold_expr_type(_binding_0),
1044 )
1045 }
1046 If(_binding_0, ) => {
1047 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001048 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001049 )
1050 }
1051 IfLet(_binding_0, ) => {
1052 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001053 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001054 )
1055 }
1056 While(_binding_0, ) => {
1057 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001058 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001059 )
1060 }
1061 WhileLet(_binding_0, ) => {
1062 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001063 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001064 )
1065 }
1066 ForLoop(_binding_0, ) => {
1067 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001068 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001069 )
1070 }
1071 Loop(_binding_0, ) => {
1072 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001073 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001074 )
1075 }
1076 Match(_binding_0, ) => {
1077 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001078 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001079 )
1080 }
1081 Closure(_binding_0, ) => {
1082 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001083 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001084 )
1085 }
Nika Layzell640832a2017-12-04 13:37:09 -05001086 Unsafe(_binding_0, ) => {
1087 Unsafe (
1088 full!(_visitor.fold_expr_unsafe(_binding_0)),
1089 )
1090 }
Nika Layzell27726662017-10-24 23:16:35 -04001091 Block(_binding_0, ) => {
1092 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001093 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001094 )
1095 }
1096 Assign(_binding_0, ) => {
1097 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001098 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001099 )
1100 }
1101 AssignOp(_binding_0, ) => {
1102 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001103 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001104 )
1105 }
1106 Field(_binding_0, ) => {
1107 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001108 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001109 )
1110 }
Nika Layzell27726662017-10-24 23:16:35 -04001111 Index(_binding_0, ) => {
1112 Index (
1113 _visitor.fold_expr_index(_binding_0),
1114 )
1115 }
1116 Range(_binding_0, ) => {
1117 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001118 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001119 )
1120 }
1121 Path(_binding_0, ) => {
1122 Path (
1123 _visitor.fold_expr_path(_binding_0),
1124 )
1125 }
1126 AddrOf(_binding_0, ) => {
1127 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001128 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001129 )
1130 }
1131 Break(_binding_0, ) => {
1132 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001133 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001134 )
1135 }
1136 Continue(_binding_0, ) => {
1137 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001138 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001139 )
1140 }
1141 Ret(_binding_0, ) => {
1142 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001143 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001144 )
1145 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001146 Macro(_binding_0, ) => {
1147 Macro (
1148 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001149 )
1150 }
1151 Struct(_binding_0, ) => {
1152 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001153 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001154 )
1155 }
1156 Repeat(_binding_0, ) => {
1157 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001158 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001159 )
1160 }
1161 Paren(_binding_0, ) => {
1162 Paren (
1163 _visitor.fold_expr_paren(_binding_0),
1164 )
1165 }
1166 Group(_binding_0, ) => {
1167 Group (
1168 _visitor.fold_expr_group(_binding_0),
1169 )
1170 }
1171 Try(_binding_0, ) => {
1172 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001173 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001174 )
1175 }
1176 Catch(_binding_0, ) => {
1177 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001178 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001179 )
1180 }
1181 Yield(_binding_0, ) => {
1182 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001183 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001184 )
1185 }
1186 }
1187}
1188# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001189pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001190 ExprLoop {
1191 body: _visitor.fold_block(_i . body),
1192 label: _i . label,
1193 loop_token: _i . loop_token,
1194 colon_token: _i . colon_token,
1195 }
1196}
1197# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001198pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001199 ExprMatch {
1200 match_token: _i . match_token,
1201 brace_token: _i . brace_token,
1202 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1203 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1204 }
1205}
1206# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001207pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001208 ExprMethodCall {
1209 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001210 method: _visitor.fold_ident(_i . method),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001211 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001212 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1213 paren_token: _i . paren_token,
1214 dot_token: _i . dot_token,
1215 lt_token: _i . lt_token,
1216 colon2_token: _i . colon2_token,
1217 gt_token: _i . gt_token,
1218 }
1219}
1220
Nika Layzella6f46c42017-10-26 15:26:16 -04001221pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001222 ExprParen {
1223 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1224 paren_token: _i . paren_token,
1225 }
1226}
1227
Nika Layzella6f46c42017-10-26 15:26:16 -04001228pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001229 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001230 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001231 path: _visitor.fold_path(_i . path),
1232 }
1233}
1234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001235pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001236 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001237 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1238 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001239 limits: _visitor.fold_range_limits(_i . limits),
1240 }
1241}
1242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001243pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001244 ExprRepeat {
1245 bracket_token: _i . bracket_token,
1246 semi_token: _i . semi_token,
1247 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1248 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1249 }
1250}
1251# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001252pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001253 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001254 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001255 return_token: _i . return_token,
1256 }
1257}
1258# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001259pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001260 ExprStruct {
1261 path: _visitor.fold_path(_i . path),
1262 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001263 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001264 dot2_token: _i . dot2_token,
1265 brace_token: _i . brace_token,
1266 }
1267}
1268# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001269pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001270 ExprTry {
1271 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1272 question_token: _i . question_token,
1273 }
1274}
1275# [ cfg ( feature = "full" ) ]
David Tolnay05362582017-12-26 01:33:57 -05001276pub fn fold_expr_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTuple) -> ExprTuple {
1277 ExprTuple {
1278 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1279 paren_token: _i . paren_token,
1280 lone_comma: _i . lone_comma,
1281 }
1282}
Nika Layzell27726662017-10-24 23:16:35 -04001283
Nika Layzella6f46c42017-10-26 15:26:16 -04001284pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001285 ExprType {
1286 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1287 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001288 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001289 }
1290}
1291
Nika Layzella6f46c42017-10-26 15:26:16 -04001292pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001293 ExprUnary {
1294 op: _visitor.fold_un_op(_i . op),
1295 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1296 }
1297}
1298# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -05001299pub fn fold_expr_unsafe<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnsafe) -> ExprUnsafe {
1300 ExprUnsafe {
1301 unsafe_token: _i . unsafe_token,
1302 block: _visitor.fold_block(_i . block),
1303 }
1304}
1305# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001306pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001307 ExprWhile {
1308 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1309 body: _visitor.fold_block(_i . body),
1310 label: _i . label,
1311 colon_token: _i . colon_token,
1312 while_token: _i . while_token,
1313 }
1314}
1315# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001316pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001317 ExprWhileLet {
1318 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1319 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1320 body: _visitor.fold_block(_i . body),
1321 label: _i . label,
1322 colon_token: _i . colon_token,
1323 while_token: _i . while_token,
1324 let_token: _i . let_token,
1325 eq_token: _i . eq_token,
1326 }
1327}
1328# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001329pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001330 ExprYield {
1331 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001332 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001333 }
1334}
1335
Nika Layzella6f46c42017-10-26 15:26:16 -04001336pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001337 Field {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001338 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001339 vis: _visitor.fold_visibility(_i . vis),
1340 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001341 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001342 colon_token: _i . colon_token,
1343 }
1344}
1345# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001346pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001347 FieldPat {
David Tolnay85b69a42017-12-27 20:43:10 -05001348 member: _visitor.fold_member(_i . member),
Nika Layzell27726662017-10-24 23:16:35 -04001349 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1350 is_shorthand: _i . is_shorthand,
1351 colon_token: _i . colon_token,
1352 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1353 }
1354}
1355# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001356pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001357 FieldValue {
David Tolnay85b69a42017-12-27 20:43:10 -05001358 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1359 member: _visitor.fold_member(_i . member),
1360 colon_token: _i . colon_token,
Nika Layzell27726662017-10-24 23:16:35 -04001361 expr: _visitor.fold_expr(_i . expr),
1362 is_shorthand: _i . is_shorthand,
Nika Layzell27726662017-10-24 23:16:35 -04001363 }
1364}
1365# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001366pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001367 File {
1368 shebang: _i . shebang,
1369 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1370 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1371 }
1372}
1373# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001374pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001375 use ::FnArg::*;
1376 match _i {
1377 SelfRef(_binding_0, ) => {
1378 SelfRef (
1379 _visitor.fold_arg_self_ref(_binding_0),
1380 )
1381 }
1382 SelfValue(_binding_0, ) => {
1383 SelfValue (
1384 _visitor.fold_arg_self(_binding_0),
1385 )
1386 }
1387 Captured(_binding_0, ) => {
1388 Captured (
1389 _visitor.fold_arg_captured(_binding_0),
1390 )
1391 }
1392 Ignored(_binding_0, ) => {
1393 Ignored (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001394 _visitor.fold_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001395 )
1396 }
1397 }
1398}
1399# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001400pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001401 FnDecl {
1402 fn_token: _i . fn_token,
1403 paren_token: _i . paren_token,
1404 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08001405 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04001406 generics: _visitor.fold_generics(_i . generics),
1407 variadic: _i . variadic,
1408 dot_tokens: _i . dot_tokens,
1409 }
1410}
1411# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001412pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001413 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001414 match _i {
1415 Fn(_binding_0, ) => {
1416 Fn (
1417 _visitor.fold_foreign_item_fn(_binding_0),
1418 )
1419 }
1420 Static(_binding_0, ) => {
1421 Static (
1422 _visitor.fold_foreign_item_static(_binding_0),
1423 )
1424 }
David Tolnay199bcbb2017-11-12 10:33:52 -08001425 Type(_binding_0, ) => {
1426 Type (
1427 _visitor.fold_foreign_item_type(_binding_0),
1428 )
1429 }
Nika Layzell27726662017-10-24 23:16:35 -04001430 }
1431}
1432# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001433pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1434 ForeignItemFn {
1435 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1436 vis: _visitor.fold_visibility(_i . vis),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001437 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001438 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1439 semi_token: _i . semi_token,
1440 }
1441}
1442# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001443pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001444 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001445 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1446 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001447 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001448 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001449 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001450 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001451 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnay8894f602017-11-11 12:11:04 -08001452 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001453 }
1454}
David Tolnay199bcbb2017-11-12 10:33:52 -08001455# [ cfg ( feature = "full" ) ]
1456pub fn fold_foreign_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemType) -> ForeignItemType {
1457 ForeignItemType {
1458 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1459 vis: _visitor.fold_visibility(_i . vis),
1460 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001461 ident: _visitor.fold_ident(_i . ident),
David Tolnay199bcbb2017-11-12 10:33:52 -08001462 semi_token: _i . semi_token,
1463 }
1464}
Nika Layzell27726662017-10-24 23:16:35 -04001465
Nika Layzellc08227a2017-12-04 16:30:17 -05001466pub fn fold_generic_argument<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericArgument) -> GenericArgument {
1467 use ::GenericArgument::*;
Nika Layzell357885a2017-12-04 15:47:07 -05001468 match _i {
1469 Lifetime(_binding_0, ) => {
1470 Lifetime (
1471 _binding_0,
1472 )
1473 }
1474 Type(_binding_0, ) => {
1475 Type (
1476 _visitor.fold_type(_binding_0),
1477 )
1478 }
1479 TypeBinding(_binding_0, ) => {
1480 TypeBinding (
1481 _visitor.fold_type_binding(_binding_0),
1482 )
1483 }
Nika Layzellc680e612017-12-04 19:07:20 -05001484 Const(_binding_0, ) => {
1485 Const (
Nika Layzellce37f332017-12-05 12:01:22 -05001486 _visitor.fold_expr(_binding_0),
Nika Layzellc680e612017-12-04 19:07:20 -05001487 )
1488 }
Nika Layzell357885a2017-12-04 15:47:07 -05001489 }
1490}
1491
David Tolnayc2f1aba2017-11-12 20:29:22 -08001492pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
1493 use ::GenericParam::*;
1494 match _i {
1495 Lifetime(_binding_0, ) => {
1496 Lifetime (
1497 _visitor.fold_lifetime_def(_binding_0),
1498 )
1499 }
1500 Type(_binding_0, ) => {
1501 Type (
1502 _visitor.fold_type_param(_binding_0),
1503 )
1504 }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -05001505 Const(_binding_0, ) => {
1506 Const (
1507 _visitor.fold_const_param(_binding_0),
1508 )
1509 }
David Tolnayc2f1aba2017-11-12 20:29:22 -08001510 }
1511}
1512
Nika Layzella6f46c42017-10-26 15:26:16 -04001513pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001514 Generics {
1515 lt_token: _i . lt_token,
David Tolnayc2f1aba2017-11-12 20:29:22 -08001516 params: FoldHelper::lift(_i . params, |it| { _visitor.fold_generic_param(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001517 gt_token: _i . gt_token,
Nika Layzell27726662017-10-24 23:16:35 -04001518 where_clause: _visitor.fold_where_clause(_i . where_clause),
1519 }
1520}
Nika Layzellefb83ba2017-12-19 18:23:55 -05001521
1522pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
1523 _i
1524}
Nika Layzell27726662017-10-24 23:16:35 -04001525# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001526pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
David Tolnay857628c2017-11-11 12:25:31 -08001527 use ::ImplItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001528 match _i {
1529 Const(_binding_0, ) => {
1530 Const (
1531 _visitor.fold_impl_item_const(_binding_0),
1532 )
1533 }
1534 Method(_binding_0, ) => {
1535 Method (
1536 _visitor.fold_impl_item_method(_binding_0),
1537 )
1538 }
1539 Type(_binding_0, ) => {
1540 Type (
1541 _visitor.fold_impl_item_type(_binding_0),
1542 )
1543 }
1544 Macro(_binding_0, ) => {
1545 Macro (
David Tolnay857628c2017-11-11 12:25:31 -08001546 _visitor.fold_impl_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001547 )
1548 }
1549 }
1550}
1551# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -08001552pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
1553 ImplItemConst {
1554 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1555 vis: _visitor.fold_visibility(_i . vis),
1556 defaultness: _visitor.fold_defaultness(_i . defaultness),
1557 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001558 ident: _visitor.fold_ident(_i . ident),
David Tolnay857628c2017-11-11 12:25:31 -08001559 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001560 ty: _visitor.fold_type(_i . ty),
David Tolnay857628c2017-11-11 12:25:31 -08001561 eq_token: _i . eq_token,
1562 expr: _visitor.fold_expr(_i . expr),
1563 semi_token: _i . semi_token,
1564 }
1565}
1566# [ cfg ( feature = "full" ) ]
1567pub fn fold_impl_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMacro) -> ImplItemMacro {
1568 ImplItemMacro {
1569 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1570 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05001571 semi_token: _i . semi_token,
David Tolnay857628c2017-11-11 12:25:31 -08001572 }
1573}
1574# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001575pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001576 ImplItemMethod {
David Tolnay857628c2017-11-11 12:25:31 -08001577 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001578 vis: _visitor.fold_visibility(_i . vis),
1579 defaultness: _visitor.fold_defaultness(_i . defaultness),
1580 sig: _visitor.fold_method_sig(_i . sig),
1581 block: _visitor.fold_block(_i . block),
1582 }
1583}
1584# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001585pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001586 ImplItemType {
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 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001591 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05001592 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04001593 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001594 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001595 semi_token: _i . semi_token,
1596 }
1597}
1598# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001599pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001600 use ::ImplPolarity::*;
1601 match _i {
1602 Positive => { Positive }
1603 Negative(_binding_0, ) => {
1604 Negative (
1605 _binding_0,
1606 )
1607 }
1608 }
1609}
1610# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001611pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001612 use ::InPlaceKind::*;
1613 match _i {
1614 Arrow(_binding_0, ) => {
1615 Arrow (
1616 _binding_0,
1617 )
1618 }
1619 In(_binding_0, ) => {
1620 In (
1621 _binding_0,
1622 )
1623 }
1624 }
1625}
1626# [ cfg ( feature = "full" ) ]
David Tolnay85b69a42017-12-27 20:43:10 -05001627pub fn fold_index<V: Folder + ?Sized>(_visitor: &mut V, _i: Index) -> Index {
1628 Index {
1629 index: _i . index,
1630 span: _visitor.fold_span(_i . span),
1631 }
1632}
1633# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001634pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001635 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001636 match _i {
1637 ExternCrate(_binding_0, ) => {
1638 ExternCrate (
1639 _visitor.fold_item_extern_crate(_binding_0),
1640 )
1641 }
1642 Use(_binding_0, ) => {
1643 Use (
1644 _visitor.fold_item_use(_binding_0),
1645 )
1646 }
1647 Static(_binding_0, ) => {
1648 Static (
1649 _visitor.fold_item_static(_binding_0),
1650 )
1651 }
1652 Const(_binding_0, ) => {
1653 Const (
1654 _visitor.fold_item_const(_binding_0),
1655 )
1656 }
1657 Fn(_binding_0, ) => {
1658 Fn (
1659 _visitor.fold_item_fn(_binding_0),
1660 )
1661 }
1662 Mod(_binding_0, ) => {
1663 Mod (
1664 _visitor.fold_item_mod(_binding_0),
1665 )
1666 }
1667 ForeignMod(_binding_0, ) => {
1668 ForeignMod (
1669 _visitor.fold_item_foreign_mod(_binding_0),
1670 )
1671 }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001672 Type(_binding_0, ) => {
1673 Type (
1674 _visitor.fold_item_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001675 )
1676 }
1677 Enum(_binding_0, ) => {
1678 Enum (
1679 _visitor.fold_item_enum(_binding_0),
1680 )
1681 }
1682 Struct(_binding_0, ) => {
1683 Struct (
1684 _visitor.fold_item_struct(_binding_0),
1685 )
1686 }
1687 Union(_binding_0, ) => {
1688 Union (
1689 _visitor.fold_item_union(_binding_0),
1690 )
1691 }
1692 Trait(_binding_0, ) => {
1693 Trait (
1694 _visitor.fold_item_trait(_binding_0),
1695 )
1696 }
1697 DefaultImpl(_binding_0, ) => {
1698 DefaultImpl (
1699 _visitor.fold_item_default_impl(_binding_0),
1700 )
1701 }
1702 Impl(_binding_0, ) => {
1703 Impl (
1704 _visitor.fold_item_impl(_binding_0),
1705 )
1706 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001707 Macro(_binding_0, ) => {
1708 Macro (
1709 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001710 )
1711 }
David Tolnay500d8322017-12-18 00:32:51 -08001712 Macro2(_binding_0, ) => {
1713 Macro2 (
1714 _visitor.fold_item_macro2(_binding_0),
1715 )
1716 }
Nika Layzell27726662017-10-24 23:16:35 -04001717 }
1718}
1719# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001720pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1721 ItemConst {
1722 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1723 vis: _visitor.fold_visibility(_i . vis),
1724 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001725 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001726 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001727 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001728 eq_token: _i . eq_token,
1729 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1730 semi_token: _i . semi_token,
1731 }
1732}
1733# [ cfg ( feature = "full" ) ]
1734pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1735 ItemDefaultImpl {
1736 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1737 unsafety: _visitor.fold_unsafety(_i . unsafety),
1738 impl_token: _i . impl_token,
1739 path: _visitor.fold_path(_i . path),
1740 for_token: _i . for_token,
1741 dot2_token: _i . dot2_token,
1742 brace_token: _i . brace_token,
1743 }
1744}
1745# [ cfg ( feature = "full" ) ]
1746pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1747 ItemEnum {
1748 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1749 vis: _visitor.fold_visibility(_i . vis),
1750 enum_token: _i . enum_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001751 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001752 generics: _visitor.fold_generics(_i . generics),
1753 brace_token: _i . brace_token,
1754 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1755 }
1756}
1757# [ cfg ( feature = "full" ) ]
1758pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1759 ItemExternCrate {
1760 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1761 vis: _visitor.fold_visibility(_i . vis),
1762 extern_token: _i . extern_token,
1763 crate_token: _i . crate_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001764 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001765 rename: _i . rename,
1766 semi_token: _i . semi_token,
1767 }
1768}
1769# [ cfg ( feature = "full" ) ]
1770pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1771 ItemFn {
1772 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1773 vis: _visitor.fold_visibility(_i . vis),
1774 constness: _visitor.fold_constness(_i . constness),
1775 unsafety: _visitor.fold_unsafety(_i . unsafety),
1776 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1777 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001778 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001779 block: Box::new(_visitor.fold_block(* _i . block)),
1780 }
1781}
1782# [ cfg ( feature = "full" ) ]
1783pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1784 ItemForeignMod {
1785 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1786 abi: _visitor.fold_abi(_i . abi),
1787 brace_token: _i . brace_token,
1788 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1789 }
1790}
1791# [ cfg ( feature = "full" ) ]
1792pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1793 ItemImpl {
1794 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1795 defaultness: _visitor.fold_defaultness(_i . defaultness),
1796 unsafety: _visitor.fold_unsafety(_i . unsafety),
1797 impl_token: _i . impl_token,
1798 generics: _visitor.fold_generics(_i . generics),
1799 trait_: _i . trait_,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001800 self_ty: Box::new(_visitor.fold_type(* _i . self_ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001801 brace_token: _i . brace_token,
1802 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1803 }
1804}
1805# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001806pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1807 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001808 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001809 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001810 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05001811 semi_token: _i . semi_token,
David Tolnayc6b55bc2017-11-09 22:48:38 -08001812 }
1813}
1814# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -08001815pub fn fold_item_macro2<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro2) -> ItemMacro2 {
1816 ItemMacro2 {
1817 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1818 vis: _visitor.fold_visibility(_i . vis),
1819 macro_token: _i . macro_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001820 ident: _visitor.fold_ident(_i . ident),
David Tolnay500d8322017-12-18 00:32:51 -08001821 args: _i . args,
1822 body: _i . body,
1823 }
1824}
1825# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001826pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001827 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001828 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001829 vis: _visitor.fold_visibility(_i . vis),
1830 mod_token: _i . mod_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001831 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001832 content: _i . content,
1833 semi: _i . semi,
1834 }
1835}
1836# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001837pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001838 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001839 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001840 vis: _visitor.fold_visibility(_i . vis),
1841 static_token: _i . static_token,
1842 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001843 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001844 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001845 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001846 eq_token: _i . eq_token,
1847 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1848 semi_token: _i . semi_token,
1849 }
1850}
1851# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001852pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001853 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001854 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001855 vis: _visitor.fold_visibility(_i . vis),
1856 struct_token: _i . struct_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001857 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001858 generics: _visitor.fold_generics(_i . generics),
1859 data: _visitor.fold_variant_data(_i . data),
1860 semi_token: _i . semi_token,
1861 }
1862}
1863# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001864pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001865 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001866 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001867 vis: _visitor.fold_visibility(_i . vis),
1868 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell0dc6e632017-11-18 12:55:25 -05001869 auto_token: _i . auto_token,
Nika Layzell27726662017-10-24 23:16:35 -04001870 trait_token: _i . trait_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001871 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001872 generics: _visitor.fold_generics(_i . generics),
1873 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001874 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001875 brace_token: _i . brace_token,
1876 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1877 }
1878}
1879# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001880pub fn fold_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemType) -> ItemType {
1881 ItemType {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001882 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001883 vis: _visitor.fold_visibility(_i . vis),
1884 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001885 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001886 generics: _visitor.fold_generics(_i . generics),
1887 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001888 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001889 semi_token: _i . semi_token,
1890 }
1891}
1892# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001893pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001894 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001895 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001896 vis: _visitor.fold_visibility(_i . vis),
1897 union_token: _i . union_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001898 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001899 generics: _visitor.fold_generics(_i . generics),
1900 data: _visitor.fold_variant_data(_i . data),
1901 }
1902}
1903# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001904pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001905 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001906 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001907 vis: _visitor.fold_visibility(_i . vis),
1908 use_token: _i . use_token,
David Tolnay5f332a92017-12-26 00:42:45 -05001909 leading_colon: _i . leading_colon,
1910 prefix: FoldHelper::lift(_i . prefix, |it| { _visitor.fold_ident(it) }),
1911 tree: _visitor.fold_use_tree(_i . tree),
Nika Layzell27726662017-10-24 23:16:35 -04001912 semi_token: _i . semi_token,
1913 }
1914}
1915
Nika Layzella6f46c42017-10-26 15:26:16 -04001916pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001917 LifetimeDef {
1918 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1919 lifetime: _i . lifetime,
1920 colon_token: _i . colon_token,
1921 bounds: _i . bounds,
1922 }
1923}
1924# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001925pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001926 Local {
1927 let_token: _i . let_token,
1928 colon_token: _i . colon_token,
1929 eq_token: _i . eq_token,
1930 semi_token: _i . semi_token,
1931 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001932 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001933 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001934 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1935 }
1936}
Nika Layzell27726662017-10-24 23:16:35 -04001937# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001938pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001939 use ::MacStmtStyle::*;
1940 match _i {
1941 Semicolon(_binding_0, ) => {
1942 Semicolon (
1943 _binding_0,
1944 )
1945 }
1946 Braces => { Braces }
1947 NoBraces => { NoBraces }
1948 }
1949}
1950
David Tolnaydecf28d2017-11-11 11:56:45 -08001951pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1952 Macro {
1953 path: _visitor.fold_path(_i . path),
1954 bang_token: _i . bang_token,
David Tolnaydecf28d2017-11-11 11:56:45 -08001955 tokens: _i . tokens,
1956 }
1957}
David Tolnay85b69a42017-12-27 20:43:10 -05001958# [ cfg ( feature = "full" ) ]
1959pub fn fold_member<V: Folder + ?Sized>(_visitor: &mut V, _i: Member) -> Member {
1960 use ::Member::*;
1961 match _i {
1962 Named(_binding_0, ) => {
1963 Named (
1964 _visitor.fold_ident(_binding_0),
1965 )
1966 }
1967 Unnamed(_binding_0, ) => {
1968 Unnamed (
1969 _visitor.fold_index(_binding_0),
1970 )
1971 }
1972 }
1973}
David Tolnaydecf28d2017-11-11 11:56:45 -08001974
Nika Layzella6f46c42017-10-26 15:26:16 -04001975pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001976 use ::MetaItem::*;
1977 match _i {
1978 Term(_binding_0, ) => {
1979 Term (
Nika Layzellefb83ba2017-12-19 18:23:55 -05001980 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001981 )
1982 }
1983 List(_binding_0, ) => {
1984 List (
1985 _visitor.fold_meta_item_list(_binding_0),
1986 )
1987 }
1988 NameValue(_binding_0, ) => {
1989 NameValue (
1990 _visitor.fold_meta_name_value(_binding_0),
1991 )
1992 }
1993 }
1994}
1995
Nika Layzella6f46c42017-10-26 15:26:16 -04001996pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001997 MetaItemList {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001998 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001999 paren_token: _i . paren_token,
2000 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
2001 }
2002}
2003
Nika Layzella6f46c42017-10-26 15:26:16 -04002004pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04002005 MetaNameValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002006 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002007 eq_token: _i . eq_token,
2008 lit: _i . lit,
2009 }
2010}
2011# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002012pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04002013 MethodSig {
2014 constness: _visitor.fold_constness(_i . constness),
2015 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002016 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002017 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002018 decl: _visitor.fold_fn_decl(_i . decl),
2019 }
2020}
2021
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002022pub fn fold_mut_type<V: Folder + ?Sized>(_visitor: &mut V, _i: MutType) -> MutType {
2023 MutType {
2024 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04002025 mutability: _visitor.fold_mutability(_i . mutability),
2026 }
2027}
2028
Nika Layzella6f46c42017-10-26 15:26:16 -04002029pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04002030 use ::Mutability::*;
2031 match _i {
2032 Mutable(_binding_0, ) => {
2033 Mutable (
2034 _binding_0,
2035 )
2036 }
2037 Immutable => { Immutable }
2038 }
2039}
2040
Nika Layzella6f46c42017-10-26 15:26:16 -04002041pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04002042 use ::NestedMetaItem::*;
2043 match _i {
2044 MetaItem(_binding_0, ) => {
2045 MetaItem (
2046 _visitor.fold_meta_item(_binding_0),
2047 )
2048 }
2049 Literal(_binding_0, ) => {
2050 Literal (
2051 _binding_0,
2052 )
2053 }
2054 }
2055}
2056
Nika Layzellc08227a2017-12-04 16:30:17 -05002057pub fn fold_parenthesized_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments {
2058 ParenthesizedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -04002059 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002060 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_type(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08002061 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04002062 }
2063}
2064# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002065pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04002066 use ::Pat::*;
2067 match _i {
2068 Wild(_binding_0, ) => {
2069 Wild (
2070 _visitor.fold_pat_wild(_binding_0),
2071 )
2072 }
2073 Ident(_binding_0, ) => {
2074 Ident (
2075 _visitor.fold_pat_ident(_binding_0),
2076 )
2077 }
2078 Struct(_binding_0, ) => {
2079 Struct (
2080 _visitor.fold_pat_struct(_binding_0),
2081 )
2082 }
2083 TupleStruct(_binding_0, ) => {
2084 TupleStruct (
2085 _visitor.fold_pat_tuple_struct(_binding_0),
2086 )
2087 }
2088 Path(_binding_0, ) => {
2089 Path (
2090 _visitor.fold_pat_path(_binding_0),
2091 )
2092 }
2093 Tuple(_binding_0, ) => {
2094 Tuple (
2095 _visitor.fold_pat_tuple(_binding_0),
2096 )
2097 }
2098 Box(_binding_0, ) => {
2099 Box (
2100 _visitor.fold_pat_box(_binding_0),
2101 )
2102 }
2103 Ref(_binding_0, ) => {
2104 Ref (
2105 _visitor.fold_pat_ref(_binding_0),
2106 )
2107 }
2108 Lit(_binding_0, ) => {
2109 Lit (
2110 _visitor.fold_pat_lit(_binding_0),
2111 )
2112 }
2113 Range(_binding_0, ) => {
2114 Range (
2115 _visitor.fold_pat_range(_binding_0),
2116 )
2117 }
2118 Slice(_binding_0, ) => {
2119 Slice (
2120 _visitor.fold_pat_slice(_binding_0),
2121 )
2122 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002123 Macro(_binding_0, ) => {
2124 Macro (
2125 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002126 )
2127 }
2128 }
2129}
2130# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002131pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002132 PatBox {
2133 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2134 box_token: _i . box_token,
2135 }
2136}
2137# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002138pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002139 PatIdent {
2140 mode: _visitor.fold_binding_mode(_i . mode),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002141 ident: _visitor.fold_ident(_i . ident),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002142 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002143 at_token: _i . at_token,
2144 }
2145}
2146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002147pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002148 PatLit {
2149 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2150 }
2151}
2152# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002153pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002154 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002155 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002156 path: _visitor.fold_path(_i . path),
2157 }
2158}
2159# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002160pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002161 PatRange {
2162 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2163 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2164 limits: _visitor.fold_range_limits(_i . limits),
2165 }
2166}
2167# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002168pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002169 PatRef {
2170 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2171 mutbl: _visitor.fold_mutability(_i . mutbl),
2172 and_token: _i . and_token,
2173 }
2174}
2175# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002176pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002177 PatSlice {
2178 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002179 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002180 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2181 dot2_token: _i . dot2_token,
2182 comma_token: _i . comma_token,
2183 bracket_token: _i . bracket_token,
2184 }
2185}
2186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002187pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002188 PatStruct {
2189 path: _visitor.fold_path(_i . path),
2190 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2191 brace_token: _i . brace_token,
2192 dot2_token: _i . dot2_token,
2193 }
2194}
2195# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002196pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002197 PatTuple {
2198 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2199 dots_pos: _i . dots_pos,
2200 paren_token: _i . paren_token,
2201 dot2_token: _i . dot2_token,
2202 comma_token: _i . comma_token,
2203 }
2204}
2205# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002206pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002207 PatTupleStruct {
2208 path: _visitor.fold_path(_i . path),
2209 pat: _visitor.fold_pat_tuple(_i . pat),
2210 }
2211}
2212# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002213pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002214 PatWild {
2215 underscore_token: _i . underscore_token,
2216 }
2217}
2218
Nika Layzella6f46c42017-10-26 15:26:16 -04002219pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002220 Path {
2221 leading_colon: _i . leading_colon,
2222 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2223 }
2224}
Nika Layzellc08227a2017-12-04 16:30:17 -05002225
2226pub fn fold_path_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: PathArguments) -> PathArguments {
2227 use ::PathArguments::*;
2228 match _i {
2229 None => { None }
2230 AngleBracketed(_binding_0, ) => {
2231 AngleBracketed (
2232 _visitor.fold_angle_bracketed_generic_arguments(_binding_0),
2233 )
2234 }
2235 Parenthesized(_binding_0, ) => {
2236 Parenthesized (
2237 _visitor.fold_parenthesized_generic_arguments(_binding_0),
2238 )
2239 }
2240 }
2241}
Nika Layzell27726662017-10-24 23:16:35 -04002242
Nika Layzella6f46c42017-10-26 15:26:16 -04002243pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002244 PathSegment {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002245 ident: _visitor.fold_ident(_i . ident),
Nika Layzellc08227a2017-12-04 16:30:17 -05002246 arguments: _visitor.fold_path_arguments(_i . arguments),
Nika Layzell27726662017-10-24 23:16:35 -04002247 }
2248}
Nika Layzell27726662017-10-24 23:16:35 -04002249
Nika Layzella6f46c42017-10-26 15:26:16 -04002250pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002251 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002252 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002253 trait_ref: _visitor.fold_path(_i . trait_ref),
2254 }
2255}
2256
Nika Layzella6f46c42017-10-26 15:26:16 -04002257pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002258 QSelf {
2259 lt_token: _i . lt_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002260 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002261 position: _i . position,
2262 as_token: _i . as_token,
2263 gt_token: _i . gt_token,
2264 }
2265}
2266# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002267pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002268 use ::RangeLimits::*;
2269 match _i {
2270 HalfOpen(_binding_0, ) => {
2271 HalfOpen (
2272 _binding_0,
2273 )
2274 }
2275 Closed(_binding_0, ) => {
2276 Closed (
2277 _binding_0,
2278 )
2279 }
2280 }
2281}
David Tolnayf93b90d2017-11-11 19:21:26 -08002282
2283pub fn fold_return_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ReturnType) -> ReturnType {
2284 use ::ReturnType::*;
2285 match _i {
2286 Default => { Default }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002287 Type(_binding_0, _binding_1, ) => {
2288 Type (
David Tolnay7f675742017-12-27 22:43:21 -05002289 Box::new(_visitor.fold_type(* _binding_0)),
David Tolnayf93b90d2017-11-11 19:21:26 -08002290 _binding_1,
2291 )
2292 }
2293 }
2294}
Nika Layzellefb83ba2017-12-19 18:23:55 -05002295
2296pub fn fold_span<V: Folder + ?Sized>(_visitor: &mut V, _i: Span) -> Span {
2297 _i
2298}
Nika Layzell27726662017-10-24 23:16:35 -04002299# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002300pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002301 use ::Stmt::*;
2302 match _i {
2303 Local(_binding_0, ) => {
2304 Local (
2305 Box::new(_visitor.fold_local(* _binding_0)),
2306 )
2307 }
2308 Item(_binding_0, ) => {
2309 Item (
2310 Box::new(_visitor.fold_item(* _binding_0)),
2311 )
2312 }
2313 Expr(_binding_0, ) => {
2314 Expr (
2315 Box::new(_visitor.fold_expr(* _binding_0)),
2316 )
2317 }
2318 Semi(_binding_0, _binding_1, ) => {
2319 Semi (
2320 Box::new(_visitor.fold_expr(* _binding_0)),
2321 _binding_1,
2322 )
2323 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002324 Macro(_binding_0, ) => {
2325 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002326 _binding_0,
2327 )
2328 }
2329 }
2330}
2331
Nika Layzella6f46c42017-10-26 15:26:16 -04002332pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002333 use ::TraitBoundModifier::*;
2334 match _i {
2335 None => { None }
2336 Maybe(_binding_0, ) => {
2337 Maybe (
2338 _binding_0,
2339 )
2340 }
2341 }
2342}
2343# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002344pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002345 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002346 match _i {
2347 Const(_binding_0, ) => {
2348 Const (
2349 _visitor.fold_trait_item_const(_binding_0),
2350 )
2351 }
2352 Method(_binding_0, ) => {
2353 Method (
2354 _visitor.fold_trait_item_method(_binding_0),
2355 )
2356 }
2357 Type(_binding_0, ) => {
2358 Type (
2359 _visitor.fold_trait_item_type(_binding_0),
2360 )
2361 }
2362 Macro(_binding_0, ) => {
2363 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002364 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002365 )
2366 }
2367 }
2368}
2369# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002370pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2371 TraitItemConst {
2372 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2373 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002374 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002375 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002376 ty: _visitor.fold_type(_i . ty),
David Tolnayda705bd2017-11-10 21:58:05 -08002377 default: _i . default,
2378 semi_token: _i . semi_token,
2379 }
2380}
2381# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002382pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2383 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002384 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002385 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05002386 semi_token: _i . semi_token,
David Tolnayda705bd2017-11-10 21:58:05 -08002387 }
2388}
2389# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002390pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002391 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002392 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002393 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002394 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002395 semi_token: _i . semi_token,
2396 }
2397}
2398# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002399pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002400 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002401 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002402 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002403 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002404 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002405 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002406 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002407 default: _i . default,
2408 semi_token: _i . semi_token,
2409 }
2410}
2411
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002412pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2413 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002414 match _i {
2415 Slice(_binding_0, ) => {
2416 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002417 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002418 )
2419 }
2420 Array(_binding_0, ) => {
2421 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002422 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002423 )
2424 }
2425 Ptr(_binding_0, ) => {
2426 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002427 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002428 )
2429 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002430 Reference(_binding_0, ) => {
2431 Reference (
2432 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002433 )
2434 }
2435 BareFn(_binding_0, ) => {
2436 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002437 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002438 )
2439 }
2440 Never(_binding_0, ) => {
2441 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002442 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002443 )
2444 }
David Tolnay05362582017-12-26 01:33:57 -05002445 Tuple(_binding_0, ) => {
2446 Tuple (
2447 _visitor.fold_type_tuple(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002448 )
2449 }
2450 Path(_binding_0, ) => {
2451 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002452 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002453 )
2454 }
2455 TraitObject(_binding_0, ) => {
2456 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002457 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002458 )
2459 }
2460 ImplTrait(_binding_0, ) => {
2461 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002462 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002463 )
2464 }
2465 Paren(_binding_0, ) => {
2466 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002467 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002468 )
2469 }
2470 Group(_binding_0, ) => {
2471 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002472 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002473 )
2474 }
2475 Infer(_binding_0, ) => {
2476 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002477 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002478 )
2479 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002480 Macro(_binding_0, ) => {
2481 Macro (
2482 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002483 )
2484 }
2485 }
2486}
2487
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002488pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2489 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002490 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002491 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002492 semi_token: _i . semi_token,
2493 amt: _visitor.fold_expr(_i . amt),
2494 }
2495}
2496
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002497pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2498 TypeBareFn {
2499 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002500 }
2501}
2502
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002503pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2504 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002505 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002506 eq_token: _i . eq_token,
2507 ty: _visitor.fold_type(_i . ty),
2508 }
2509}
2510
2511pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2512 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002513 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002514 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002515 }
2516}
2517
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002518pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2519 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002520 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002521 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002522 }
2523}
2524
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002525pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2526 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002527 underscore_token: _i . underscore_token,
2528 }
2529}
2530
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002531pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2532 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002533 bang_token: _i . bang_token,
2534 }
2535}
2536
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002537pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2538 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002539 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002540 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002541 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002542 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002543 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002544 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002545 }
2546}
2547
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002548pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2549 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002550 match _i {
2551 Trait(_binding_0, _binding_1, ) => {
2552 Trait (
2553 _visitor.fold_poly_trait_ref(_binding_0),
2554 _visitor.fold_trait_bound_modifier(_binding_1),
2555 )
2556 }
2557 Region(_binding_0, ) => {
2558 Region (
2559 _binding_0,
2560 )
2561 }
2562 }
2563}
2564
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002565pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2566 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002567 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002568 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002569 }
2570}
2571
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002572pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2573 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002574 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002575 path: _visitor.fold_path(_i . path),
2576 }
2577}
2578
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002579pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2580 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002581 star_token: _i . star_token,
2582 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002583 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002584 }
2585}
2586
David Tolnay0a89b4d2017-11-13 00:55:45 -08002587pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2588 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002589 and_token: _i . and_token,
2590 lifetime: _i . lifetime,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002591 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002592 }
2593}
2594
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002595pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2596 TypeSlice {
2597 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002598 bracket_token: _i . bracket_token,
2599 }
2600}
2601
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002602pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2603 TypeTraitObject {
David Tolnaye45b59f2017-12-25 18:44:49 -05002604 dyn_token: _i . dyn_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002605 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002606 }
2607}
2608
David Tolnay05362582017-12-26 01:33:57 -05002609pub fn fold_type_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTuple) -> TypeTuple {
2610 TypeTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002611 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002612 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002613 lone_comma: _i . lone_comma,
2614 }
2615}
2616
Nika Layzella6f46c42017-10-26 15:26:16 -04002617pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002618 use ::UnOp::*;
2619 match _i {
2620 Deref(_binding_0, ) => {
2621 Deref (
2622 _binding_0,
2623 )
2624 }
2625 Not(_binding_0, ) => {
2626 Not (
2627 _binding_0,
2628 )
2629 }
2630 Neg(_binding_0, ) => {
2631 Neg (
2632 _binding_0,
2633 )
2634 }
2635 }
2636}
2637
Nika Layzella6f46c42017-10-26 15:26:16 -04002638pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002639 use ::Unsafety::*;
2640 match _i {
2641 Unsafe(_binding_0, ) => {
2642 Unsafe (
2643 _binding_0,
2644 )
2645 }
2646 Normal => { Normal }
2647 }
2648}
David Tolnay5f332a92017-12-26 00:42:45 -05002649# [ cfg ( feature = "full" ) ]
2650pub fn fold_use_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: UseGlob) -> UseGlob {
2651 UseGlob {
2652 star_token: _i . star_token,
2653 }
2654}
2655# [ cfg ( feature = "full" ) ]
2656pub fn fold_use_list<V: Folder + ?Sized>(_visitor: &mut V, _i: UseList) -> UseList {
2657 UseList {
2658 brace_token: _i . brace_token,
2659 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_use_tree(it) }),
2660 }
2661}
2662# [ cfg ( feature = "full" ) ]
2663pub fn fold_use_path<V: Folder + ?Sized>(_visitor: &mut V, _i: UsePath) -> UsePath {
2664 UsePath {
2665 ident: _visitor.fold_ident(_i . ident),
2666 rename: _i . rename,
2667 }
2668}
2669# [ cfg ( feature = "full" ) ]
2670pub fn fold_use_tree<V: Folder + ?Sized>(_visitor: &mut V, _i: UseTree) -> UseTree {
2671 use ::UseTree::*;
2672 match _i {
2673 Path(_binding_0, ) => {
2674 Path (
2675 _visitor.fold_use_path(_binding_0),
2676 )
2677 }
2678 Glob(_binding_0, ) => {
2679 Glob (
2680 _visitor.fold_use_glob(_binding_0),
2681 )
2682 }
2683 List(_binding_0, ) => {
2684 List (
2685 _visitor.fold_use_list(_binding_0),
2686 )
2687 }
2688 }
2689}
Nika Layzell27726662017-10-24 23:16:35 -04002690
Nika Layzella6f46c42017-10-26 15:26:16 -04002691pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002692 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002693 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002694 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2695 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002696 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002697 eq_token: _i . eq_token,
2698 }
2699}
2700
Nika Layzella6f46c42017-10-26 15:26:16 -04002701pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002702 use ::VariantData::*;
2703 match _i {
2704 Struct(_binding_0, _binding_1, ) => {
2705 Struct (
2706 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2707 _binding_1,
2708 )
2709 }
2710 Tuple(_binding_0, _binding_1, ) => {
2711 Tuple (
2712 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2713 _binding_1,
2714 )
2715 }
2716 Unit => { Unit }
2717 }
2718}
Nika Layzell27726662017-10-24 23:16:35 -04002719
Nika Layzella6f46c42017-10-26 15:26:16 -04002720pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002721 VisCrate {
2722 pub_token: _i . pub_token,
2723 paren_token: _i . paren_token,
2724 crate_token: _i . crate_token,
2725 }
2726}
2727
Nika Layzella6f46c42017-10-26 15:26:16 -04002728pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002729 VisInherited {
2730 }
2731}
2732
Nika Layzella6f46c42017-10-26 15:26:16 -04002733pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002734 VisPublic {
2735 pub_token: _i . pub_token,
2736 }
2737}
2738
Nika Layzella6f46c42017-10-26 15:26:16 -04002739pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002740 VisRestricted {
2741 pub_token: _i . pub_token,
2742 paren_token: _i . paren_token,
2743 in_token: _i . in_token,
2744 path: Box::new(_visitor.fold_path(* _i . path)),
2745 }
2746}
2747
Nika Layzella6f46c42017-10-26 15:26:16 -04002748pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002749 use ::Visibility::*;
2750 match _i {
2751 Public(_binding_0, ) => {
2752 Public (
2753 _visitor.fold_vis_public(_binding_0),
2754 )
2755 }
2756 Crate(_binding_0, ) => {
2757 Crate (
2758 _visitor.fold_vis_crate(_binding_0),
2759 )
2760 }
2761 Restricted(_binding_0, ) => {
2762 Restricted (
2763 _visitor.fold_vis_restricted(_binding_0),
2764 )
2765 }
2766 Inherited(_binding_0, ) => {
2767 Inherited (
2768 _visitor.fold_vis_inherited(_binding_0),
2769 )
2770 }
2771 }
2772}
2773
Nika Layzella6f46c42017-10-26 15:26:16 -04002774pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002775 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002776 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002777 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002778 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002779 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002780 }
2781}
2782
Nika Layzella6f46c42017-10-26 15:26:16 -04002783pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002784 WhereClause {
2785 where_token: _i . where_token,
2786 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2787 }
2788}
2789
Nika Layzella6f46c42017-10-26 15:26:16 -04002790pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002791 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002792 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002793 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002794 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002795 }
2796}
2797
Nika Layzella6f46c42017-10-26 15:26:16 -04002798pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002799 use ::WherePredicate::*;
2800 match _i {
2801 BoundPredicate(_binding_0, ) => {
2802 BoundPredicate (
2803 _visitor.fold_where_bound_predicate(_binding_0),
2804 )
2805 }
2806 RegionPredicate(_binding_0, ) => {
2807 RegionPredicate (
2808 _visitor.fold_where_region_predicate(_binding_0),
2809 )
2810 }
2811 EqPredicate(_binding_0, ) => {
2812 EqPredicate (
2813 _visitor.fold_where_eq_predicate(_binding_0),
2814 )
2815 }
2816 }
2817}
2818
Nika Layzella6f46c42017-10-26 15:26:16 -04002819pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002820 WhereRegionPredicate {
2821 lifetime: _i . lifetime,
2822 colon_token: _i . colon_token,
2823 bounds: _i . bounds,
2824 }
2825}
2826