blob: 2d6a92d8a69e18b69ddf4b6bd598954043b95908 [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 Tolnay98942562017-12-26 21:24:35 -050013use proc_macro2::Span;
David Tolnayf60f4262017-12-28 19:17:58 -050014use gen::helper::fold::*;
Nika Layzell27726662017-10-24 23:16:35 -040015
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040016
17#[cfg(feature = "full")]
18macro_rules! full {
19 ($e:expr) => { $e }
20}
21
22#[cfg(not(feature = "full"))]
23macro_rules! full {
24 ($e:expr) => { unreachable!() }
25}
26
27
Nika Layzell27726662017-10-24 23:16:35 -040028/// AST->AST fold.
29///
30/// Each method of the Folder trait is a hook to be potentially overridden. Each
31/// method's default implementation recursively visits the substructure of the
32/// input via the `walk` functions, which perform an "identity fold", that
33/// is, they return the same structure that they are given (for example the
34/// `fold_file` method by default calls `fold::walk_file`).
35///
36/// If you want to ensure that your code handles every variant
37/// explicitly, you need to override each method. (And you also need
38/// to monitor future changes to `Folder` in case a new method with a
39/// new default implementation gets introduced.)
40pub trait Folder {
41
Nika Layzella6f46c42017-10-26 15:26:16 -040042fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040043
Nika Layzella6f46c42017-10-26 15:26:16 -040044fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040045
Nika Layzellc08227a2017-12-04 16:30:17 -050046fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040047# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040048fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040049# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040050fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040051# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040052fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040053# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040054fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040055
Nika Layzella6f46c42017-10-26 15:26:16 -040056fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040057
Nika Layzella6f46c42017-10-26 15:26:16 -040058fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040059
Nika Layzella6f46c42017-10-26 15:26:16 -040060fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040061
Nika Layzella6f46c42017-10-26 15:26:16 -040062fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040063
David Tolnayfd6bf5c2017-11-12 09:41:14 -080064fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040065
Nika Layzella6f46c42017-10-26 15:26:16 -040066fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040067# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040068fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040069# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040070fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040071
Nika Layzella6f46c42017-10-26 15:26:16 -040072fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040073
Nika Layzella6f46c42017-10-26 15:26:16 -040074fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040075
Nika Layzella6f46c42017-10-26 15:26:16 -040076fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040077
Nika Layzella6f46c42017-10-26 15:26:16 -040078fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040079# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040080fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -050081
82fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040083# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040084fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040085# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040086fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040087
Nika Layzella6f46c42017-10-26 15:26:16 -040088fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040089
Nika Layzella6f46c42017-10-26 15:26:16 -040090fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040091# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040092fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040093# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040094fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040095# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040096fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040097# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040098fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040099
Nika Layzella6f46c42017-10-26 15:26:16 -0400100fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400101# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400102fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400103# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400104fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400105# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400106fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400107
Nika Layzella6f46c42017-10-26 15:26:16 -0400108fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400109
Nika Layzella6f46c42017-10-26 15:26:16 -0400110fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400111# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400112fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400113# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400114fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400115# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400116fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400117# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400118fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400119# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400120fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400121
Nika Layzella6f46c42017-10-26 15:26:16 -0400122fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400123# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400124fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400125# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400126fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400127# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400128fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400129
Nika Layzella6f46c42017-10-26 15:26:16 -0400130fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400131
Nika Layzella6f46c42017-10-26 15:26:16 -0400132fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400133# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400134fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400135# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400136fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400137# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400138fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400139
Nika Layzella6f46c42017-10-26 15:26:16 -0400140fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400141
Nika Layzella6f46c42017-10-26 15:26:16 -0400142fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400143# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400144fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400145# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400146fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400147# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400148fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400149# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400150fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400151# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400152fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400153# [ cfg ( feature = "full" ) ]
David Tolnay05362582017-12-26 01:33:57 -0500154fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple { fold_expr_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400155
Nika Layzella6f46c42017-10-26 15:26:16 -0400156fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400157
Nika Layzella6f46c42017-10-26 15:26:16 -0400158fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400159# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500160fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
161# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400162fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400163# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400164fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400165# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400166fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400167
Nika Layzella6f46c42017-10-26 15:26:16 -0400168fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400169# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400170fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400171# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400172fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400173# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400174fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400175# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400176fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400177# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400178fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400179# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400180fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400181# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400182fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400183# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400184fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800185# [ cfg ( feature = "full" ) ]
186fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400187
Nika Layzellc08227a2017-12-04 16:30:17 -0500188fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500189
David Tolnayc2f1aba2017-11-12 20:29:22 -0800190fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
191
Nika Layzella6f46c42017-10-26 15:26:16 -0400192fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500193
194fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400195# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400196fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400197# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400198fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400199# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800200fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400201# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400202fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400203# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400204fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400205# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400206fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400207# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400208fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400209# [ cfg ( feature = "full" ) ]
David Tolnay85b69a42017-12-27 20:43:10 -0500210fn fold_index(&mut self, i: Index) -> Index { fold_index(self, i) }
211# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400212fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400213# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400214fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400215# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400216fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400217# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400218fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400219# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400220fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400221# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400222fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400223# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400224fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400225# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400226fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400227# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800228fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400229# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800230fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
231# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400232fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400233# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400234fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400235# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400236fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400237# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400238fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400239# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800240fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400241# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400242fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400243# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400244fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400245
David Tolnay4ba63a02017-12-28 15:53:05 -0500246fn fold_lifetime(&mut self, i: Lifetime) -> Lifetime { fold_lifetime(self, i) }
247
Nika Layzella6f46c42017-10-26 15:26:16 -0400248fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
David Tolnay4ba63a02017-12-28 15:53:05 -0500249
250fn fold_lit(&mut self, i: Lit) -> Lit { fold_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400251# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400252fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400253
David Tolnaydecf28d2017-11-11 11:56:45 -0800254fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
David Tolnay85b69a42017-12-27 20:43:10 -0500255# [ cfg ( feature = "full" ) ]
256fn fold_member(&mut self, i: Member) -> Member { fold_member(self, i) }
David Tolnaydecf28d2017-11-11 11:56:45 -0800257
Nika Layzella6f46c42017-10-26 15:26:16 -0400258fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400259
Nika Layzella6f46c42017-10-26 15:26:16 -0400260fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400261
Nika Layzella6f46c42017-10-26 15:26:16 -0400262fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400263# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400264fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400265
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800266fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400267
Nika Layzella6f46c42017-10-26 15:26:16 -0400268fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400269
Nika Layzella6f46c42017-10-26 15:26:16 -0400270fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400271
Nika Layzellc08227a2017-12-04 16:30:17 -0500272fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400273# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400274fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400275# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400276fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400277# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400278fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400279# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400280fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400281# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400282fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400283# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400284fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400285# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400286fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400287# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400288fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400289# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400290fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400291# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400292fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400293# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400294fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400295# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400296fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400297
Nika Layzella6f46c42017-10-26 15:26:16 -0400298fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500299
300fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400301
Nika Layzella6f46c42017-10-26 15:26:16 -0400302fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400303
Nika Layzella6f46c42017-10-26 15:26:16 -0400304fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400305
Nika Layzella6f46c42017-10-26 15:26:16 -0400306fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400307# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400308fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800309
310fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500311
312fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400313# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400314fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400315
Nika Layzella6f46c42017-10-26 15:26:16 -0400316fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400317# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400318fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400319# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400320fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400321# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800322fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400323# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400324fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400325# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400326fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400327
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800328fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400329
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800330fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400331
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800332fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400333
Nika Layzella6f46c42017-10-26 15:26:16 -0400334fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400335
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800336fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
337
338fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
339
340fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
341
342fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
343
344fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
345
346fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
347
348fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
349
350fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
351
352fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
353
David Tolnay0a89b4d2017-11-13 00:55:45 -0800354fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800355
356fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
357
358fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
359
David Tolnay05362582017-12-26 01:33:57 -0500360fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple { fold_type_tuple(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800361
Nika Layzella6f46c42017-10-26 15:26:16 -0400362fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400363
Nika Layzella6f46c42017-10-26 15:26:16 -0400364fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
David Tolnay5f332a92017-12-26 00:42:45 -0500365# [ cfg ( feature = "full" ) ]
366fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob { fold_use_glob(self, i) }
367# [ cfg ( feature = "full" ) ]
368fn fold_use_list(&mut self, i: UseList) -> UseList { fold_use_list(self, i) }
369# [ cfg ( feature = "full" ) ]
370fn fold_use_path(&mut self, i: UsePath) -> UsePath { fold_use_path(self, i) }
371# [ cfg ( feature = "full" ) ]
372fn fold_use_tree(&mut self, i: UseTree) -> UseTree { fold_use_tree(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400373
Nika Layzella6f46c42017-10-26 15:26:16 -0400374fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400375
Nika Layzella6f46c42017-10-26 15:26:16 -0400376fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400377
Nika Layzella6f46c42017-10-26 15:26:16 -0400378fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400379
Nika Layzella6f46c42017-10-26 15:26:16 -0400380fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400381
Nika Layzella6f46c42017-10-26 15:26:16 -0400382fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400383
Nika Layzella6f46c42017-10-26 15:26:16 -0400384fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400385
Nika Layzella6f46c42017-10-26 15:26:16 -0400386fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400387
Nika Layzella6f46c42017-10-26 15:26:16 -0400388fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400389
Nika Layzella6f46c42017-10-26 15:26:16 -0400390fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400391
Nika Layzella6f46c42017-10-26 15:26:16 -0400392fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400393
Nika Layzella6f46c42017-10-26 15:26:16 -0400394fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400395
Nika Layzella6f46c42017-10-26 15:26:16 -0400396fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400397
398}
399
400
Nika Layzella6f46c42017-10-26 15:26:16 -0400401pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400402 Abi {
403 extern_token: _i . extern_token,
404 kind: _visitor.fold_abi_kind(_i . kind),
405 }
406}
407
Nika Layzella6f46c42017-10-26 15:26:16 -0400408pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400409 use ::AbiKind::*;
410 match _i {
411 Named(_binding_0, ) => {
412 Named (
David Tolnay4ba63a02017-12-28 15:53:05 -0500413 _visitor.fold_lit(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400414 )
415 }
416 Default => { Default }
417 }
418}
419
Nika Layzellc08227a2017-12-04 16:30:17 -0500420pub fn fold_angle_bracketed_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments {
421 AngleBracketedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -0400422 turbofish: _i . turbofish,
423 lt_token: _i . lt_token,
Nika Layzellc08227a2017-12-04 16:30:17 -0500424 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_generic_argument(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400425 gt_token: _i . gt_token,
426 }
427}
428# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400429pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400430 ArgCaptured {
431 pat: _visitor.fold_pat(_i . pat),
432 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800433 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400434 }
435}
436# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400437pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400438 ArgSelf {
439 mutbl: _visitor.fold_mutability(_i . mutbl),
440 self_token: _i . self_token,
441 }
442}
443# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400444pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400445 ArgSelfRef {
446 and_token: _i . and_token,
447 self_token: _i . self_token,
David Tolnay4ba63a02017-12-28 15:53:05 -0500448 lifetime: (_i . lifetime).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400449 mutbl: _visitor.fold_mutability(_i . mutbl),
450 }
451}
452# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400453pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400454 Arm {
455 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
456 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
457 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400458 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400459 rocket_token: _i . rocket_token,
460 body: Box::new(_visitor.fold_expr(* _i . body)),
461 comma: _i . comma,
462 }
463}
464
Nika Layzella6f46c42017-10-26 15:26:16 -0400465pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400466 use ::AttrStyle::*;
467 match _i {
468 Outer => { Outer }
469 Inner(_binding_0, ) => {
470 Inner (
471 _binding_0,
472 )
473 }
474 }
475}
476
Nika Layzella6f46c42017-10-26 15:26:16 -0400477pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400478 Attribute {
479 style: _visitor.fold_attr_style(_i . style),
480 pound_token: _i . pound_token,
481 bracket_token: _i . bracket_token,
482 path: _visitor.fold_path(_i . path),
483 tts: _i . tts,
484 is_sugared_doc: _i . is_sugared_doc,
485 }
486}
487
Nika Layzella6f46c42017-10-26 15:26:16 -0400488pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400489 BareFnArg {
David Tolnay5c4c0b52017-12-28 17:58:54 -0500490 name: (_i . name).map(|it| { (
491 _visitor.fold_bare_fn_arg_name(( it ) . 0),
492 ( it ) . 1,
493 ) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800494 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400495 }
496}
497
Nika Layzella6f46c42017-10-26 15:26:16 -0400498pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400499 use ::BareFnArgName::*;
500 match _i {
501 Named(_binding_0, ) => {
502 Named (
Nika Layzellefb83ba2017-12-19 18:23:55 -0500503 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400504 )
505 }
506 Wild(_binding_0, ) => {
507 Wild (
508 _binding_0,
509 )
510 }
511 }
512}
513
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800514pub fn fold_bare_fn_type<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnType) -> BareFnType {
515 BareFnType {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400516 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400517 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400518 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400519 fn_token: _i . fn_token,
520 paren_token: _i . paren_token,
521 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
522 variadic: _i . variadic,
David Tolnayf93b90d2017-11-11 19:21:26 -0800523 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -0400524 }
525}
526
Nika Layzella6f46c42017-10-26 15:26:16 -0400527pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400528 use ::BinOp::*;
529 match _i {
530 Add(_binding_0, ) => {
531 Add (
532 _binding_0,
533 )
534 }
535 Sub(_binding_0, ) => {
536 Sub (
537 _binding_0,
538 )
539 }
540 Mul(_binding_0, ) => {
541 Mul (
542 _binding_0,
543 )
544 }
545 Div(_binding_0, ) => {
546 Div (
547 _binding_0,
548 )
549 }
550 Rem(_binding_0, ) => {
551 Rem (
552 _binding_0,
553 )
554 }
555 And(_binding_0, ) => {
556 And (
557 _binding_0,
558 )
559 }
560 Or(_binding_0, ) => {
561 Or (
562 _binding_0,
563 )
564 }
565 BitXor(_binding_0, ) => {
566 BitXor (
567 _binding_0,
568 )
569 }
570 BitAnd(_binding_0, ) => {
571 BitAnd (
572 _binding_0,
573 )
574 }
575 BitOr(_binding_0, ) => {
576 BitOr (
577 _binding_0,
578 )
579 }
580 Shl(_binding_0, ) => {
581 Shl (
582 _binding_0,
583 )
584 }
585 Shr(_binding_0, ) => {
586 Shr (
587 _binding_0,
588 )
589 }
590 Eq(_binding_0, ) => {
591 Eq (
592 _binding_0,
593 )
594 }
595 Lt(_binding_0, ) => {
596 Lt (
597 _binding_0,
598 )
599 }
600 Le(_binding_0, ) => {
601 Le (
602 _binding_0,
603 )
604 }
605 Ne(_binding_0, ) => {
606 Ne (
607 _binding_0,
608 )
609 }
610 Ge(_binding_0, ) => {
611 Ge (
612 _binding_0,
613 )
614 }
615 Gt(_binding_0, ) => {
616 Gt (
617 _binding_0,
618 )
619 }
620 AddEq(_binding_0, ) => {
621 AddEq (
622 _binding_0,
623 )
624 }
625 SubEq(_binding_0, ) => {
626 SubEq (
627 _binding_0,
628 )
629 }
630 MulEq(_binding_0, ) => {
631 MulEq (
632 _binding_0,
633 )
634 }
635 DivEq(_binding_0, ) => {
636 DivEq (
637 _binding_0,
638 )
639 }
640 RemEq(_binding_0, ) => {
641 RemEq (
642 _binding_0,
643 )
644 }
645 BitXorEq(_binding_0, ) => {
646 BitXorEq (
647 _binding_0,
648 )
649 }
650 BitAndEq(_binding_0, ) => {
651 BitAndEq (
652 _binding_0,
653 )
654 }
655 BitOrEq(_binding_0, ) => {
656 BitOrEq (
657 _binding_0,
658 )
659 }
660 ShlEq(_binding_0, ) => {
661 ShlEq (
662 _binding_0,
663 )
664 }
665 ShrEq(_binding_0, ) => {
666 ShrEq (
667 _binding_0,
668 )
669 }
670 }
671}
672# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400673pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400674 use ::BindingMode::*;
675 match _i {
676 ByRef(_binding_0, _binding_1, ) => {
677 ByRef (
678 _binding_0,
679 _visitor.fold_mutability(_binding_1),
680 )
681 }
682 ByValue(_binding_0, ) => {
683 ByValue (
684 _visitor.fold_mutability(_binding_0),
685 )
686 }
687 }
688}
689# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400690pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400691 Block {
692 brace_token: _i . brace_token,
693 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
694 }
695}
696
Nika Layzella6f46c42017-10-26 15:26:16 -0400697pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400698 use ::Body::*;
699 match _i {
700 Enum(_binding_0, ) => {
701 Enum (
702 _visitor.fold_body_enum(_binding_0),
703 )
704 }
705 Struct(_binding_0, ) => {
706 Struct (
707 _visitor.fold_body_struct(_binding_0),
708 )
709 }
710 }
711}
712
Nika Layzella6f46c42017-10-26 15:26:16 -0400713pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400714 BodyEnum {
715 enum_token: _i . enum_token,
716 brace_token: _i . brace_token,
717 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
718 }
719}
720
Nika Layzella6f46c42017-10-26 15:26:16 -0400721pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400722 BodyStruct {
723 data: _visitor.fold_variant_data(_i . data),
724 struct_token: _i . struct_token,
725 semi_token: _i . semi_token,
726 }
727}
728
Nika Layzella6f46c42017-10-26 15:26:16 -0400729pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400730 BoundLifetimes {
731 for_token: _i . for_token,
732 lt_token: _i . lt_token,
733 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
734 gt_token: _i . gt_token,
735 }
736}
737# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400738pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400739 use ::CaptureBy::*;
740 match _i {
741 Value(_binding_0, ) => {
742 Value (
743 _binding_0,
744 )
745 }
746 Ref => { Ref }
747 }
748}
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500749
750pub fn fold_const_param<V: Folder + ?Sized>(_visitor: &mut V, _i: ConstParam) -> ConstParam {
751 ConstParam {
752 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
753 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -0500754 ident: _visitor.fold_ident(_i . ident),
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500755 colon_token: _i . colon_token,
756 ty: _visitor.fold_type(_i . ty),
757 eq_token: _i . eq_token,
758 default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
759 }
760}
Nika Layzell27726662017-10-24 23:16:35 -0400761# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400762pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400763 use ::Constness::*;
764 match _i {
765 Const(_binding_0, ) => {
766 Const (
767 _binding_0,
768 )
769 }
770 NotConst => { NotConst }
771 }
772}
773# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400774pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400775 use ::Defaultness::*;
776 match _i {
777 Default(_binding_0, ) => {
778 Default (
779 _binding_0,
780 )
781 }
782 Final => { Final }
783 }
784}
785
Nika Layzella6f46c42017-10-26 15:26:16 -0400786pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400787 DeriveInput {
Nika Layzellefb83ba2017-12-19 18:23:55 -0500788 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -0400789 vis: _visitor.fold_visibility(_i . vis),
790 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
791 generics: _visitor.fold_generics(_i . generics),
792 body: _visitor.fold_body(_i . body),
793 }
794}
795
Nika Layzella6f46c42017-10-26 15:26:16 -0400796pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400797 Expr {
798 node: _visitor.fold_expr_kind(_i . node),
799 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
800 }
801}
802# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400803pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400804 ExprAddrOf {
805 and_token: _i . and_token,
806 mutbl: _visitor.fold_mutability(_i . mutbl),
807 expr: Box::new(_visitor.fold_expr(* _i . expr)),
808 }
809}
810# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400811pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400812 ExprArray {
813 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
814 bracket_token: _i . bracket_token,
815 }
816}
817# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400818pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400819 ExprAssign {
820 left: Box::new(_visitor.fold_expr(* _i . left)),
821 right: Box::new(_visitor.fold_expr(* _i . right)),
822 eq_token: _i . eq_token,
823 }
824}
825# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400826pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400827 ExprAssignOp {
828 op: _visitor.fold_bin_op(_i . op),
829 left: Box::new(_visitor.fold_expr(* _i . left)),
830 right: Box::new(_visitor.fold_expr(* _i . right)),
831 }
832}
833
Nika Layzella6f46c42017-10-26 15:26:16 -0400834pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400835 ExprBinary {
836 op: _visitor.fold_bin_op(_i . op),
837 left: Box::new(_visitor.fold_expr(* _i . left)),
838 right: Box::new(_visitor.fold_expr(* _i . right)),
839 }
840}
841# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400842pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400843 ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400844 block: _visitor.fold_block(_i . block),
845 }
846}
847# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400848pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400849 ExprBox {
850 expr: Box::new(_visitor.fold_expr(* _i . expr)),
851 box_token: _i . box_token,
852 }
853}
854# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400855pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400856 ExprBreak {
David Tolnay4ba63a02017-12-28 15:53:05 -0500857 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400858 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400859 break_token: _i . break_token,
860 }
861}
862
Nika Layzella6f46c42017-10-26 15:26:16 -0400863pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400864 ExprCall {
865 func: Box::new(_visitor.fold_expr(* _i . func)),
866 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
867 paren_token: _i . paren_token,
868 }
869}
870
Nika Layzella6f46c42017-10-26 15:26:16 -0400871pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400872 ExprCast {
873 expr: Box::new(_visitor.fold_expr(* _i . expr)),
874 as_token: _i . as_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800875 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -0400876 }
877}
878# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400879pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400880 ExprCatch {
881 do_token: _i . do_token,
882 catch_token: _i . catch_token,
883 block: _visitor.fold_block(_i . block),
884 }
885}
886# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400887pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400888 ExprClosure {
889 capture: _visitor.fold_capture_by(_i . capture),
Nika Layzell27726662017-10-24 23:16:35 -0400890 or1_token: _i . or1_token,
David Tolnay7f675742017-12-27 22:43:21 -0500891 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400892 or2_token: _i . or2_token,
David Tolnay7f675742017-12-27 22:43:21 -0500893 output: _visitor.fold_return_type(_i . output),
894 body: Box::new(_visitor.fold_expr(* _i . body)),
Nika Layzell27726662017-10-24 23:16:35 -0400895 }
896}
897# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400898pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400899 ExprContinue {
David Tolnay4ba63a02017-12-28 15:53:05 -0500900 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400901 continue_token: _i . continue_token,
902 }
903}
904# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400905pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400906 ExprField {
David Tolnay85b69a42017-12-27 20:43:10 -0500907 base: Box::new(_visitor.fold_expr(* _i . base)),
Nika Layzell27726662017-10-24 23:16:35 -0400908 dot_token: _i . dot_token,
David Tolnay85b69a42017-12-27 20:43:10 -0500909 member: _visitor.fold_member(_i . member),
Nika Layzell27726662017-10-24 23:16:35 -0400910 }
911}
912# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400913pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400914 ExprForLoop {
915 pat: Box::new(_visitor.fold_pat(* _i . pat)),
916 expr: Box::new(_visitor.fold_expr(* _i . expr)),
917 body: _visitor.fold_block(_i . body),
David Tolnay4ba63a02017-12-28 15:53:05 -0500918 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400919 for_token: _i . for_token,
920 colon_token: _i . colon_token,
921 in_token: _i . in_token,
922 }
923}
924
Nika Layzella6f46c42017-10-26 15:26:16 -0400925pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400926 ExprGroup {
927 expr: Box::new(_visitor.fold_expr(* _i . expr)),
928 group_token: _i . group_token,
929 }
930}
931# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400932pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400933 ExprIf {
934 cond: Box::new(_visitor.fold_expr(* _i . cond)),
935 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400936 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400937 if_token: _i . if_token,
938 else_token: _i . else_token,
939 }
940}
941# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400942pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400943 ExprIfLet {
944 pat: Box::new(_visitor.fold_pat(* _i . pat)),
945 expr: Box::new(_visitor.fold_expr(* _i . expr)),
946 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400947 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400948 if_token: _i . if_token,
949 let_token: _i . let_token,
950 eq_token: _i . eq_token,
951 else_token: _i . else_token,
952 }
953}
954# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400955pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400956 ExprInPlace {
957 place: Box::new(_visitor.fold_expr(* _i . place)),
958 kind: _visitor.fold_in_place_kind(_i . kind),
959 value: Box::new(_visitor.fold_expr(* _i . value)),
960 }
961}
962
Nika Layzella6f46c42017-10-26 15:26:16 -0400963pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400964 ExprIndex {
965 expr: Box::new(_visitor.fold_expr(* _i . expr)),
966 index: Box::new(_visitor.fold_expr(* _i . index)),
967 bracket_token: _i . bracket_token,
968 }
969}
970
Nika Layzella6f46c42017-10-26 15:26:16 -0400971pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400972 use ::ExprKind::*;
973 match _i {
974 Box(_binding_0, ) => {
975 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400976 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400977 )
978 }
979 InPlace(_binding_0, ) => {
980 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400981 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400982 )
983 }
984 Array(_binding_0, ) => {
985 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400986 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400987 )
988 }
989 Call(_binding_0, ) => {
990 Call (
991 _visitor.fold_expr_call(_binding_0),
992 )
993 }
994 MethodCall(_binding_0, ) => {
995 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400996 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400997 )
998 }
David Tolnay05362582017-12-26 01:33:57 -0500999 Tuple(_binding_0, ) => {
1000 Tuple (
1001 full!(_visitor.fold_expr_tuple(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001002 )
1003 }
1004 Binary(_binding_0, ) => {
1005 Binary (
1006 _visitor.fold_expr_binary(_binding_0),
1007 )
1008 }
1009 Unary(_binding_0, ) => {
1010 Unary (
1011 _visitor.fold_expr_unary(_binding_0),
1012 )
1013 }
1014 Lit(_binding_0, ) => {
1015 Lit (
David Tolnay4ba63a02017-12-28 15:53:05 -05001016 _visitor.fold_lit(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001017 )
1018 }
1019 Cast(_binding_0, ) => {
1020 Cast (
1021 _visitor.fold_expr_cast(_binding_0),
1022 )
1023 }
1024 Type(_binding_0, ) => {
1025 Type (
1026 _visitor.fold_expr_type(_binding_0),
1027 )
1028 }
1029 If(_binding_0, ) => {
1030 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001031 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001032 )
1033 }
1034 IfLet(_binding_0, ) => {
1035 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001036 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001037 )
1038 }
1039 While(_binding_0, ) => {
1040 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001041 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001042 )
1043 }
1044 WhileLet(_binding_0, ) => {
1045 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001046 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001047 )
1048 }
1049 ForLoop(_binding_0, ) => {
1050 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001051 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001052 )
1053 }
1054 Loop(_binding_0, ) => {
1055 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001056 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001057 )
1058 }
1059 Match(_binding_0, ) => {
1060 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001061 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001062 )
1063 }
1064 Closure(_binding_0, ) => {
1065 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001066 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001067 )
1068 }
Nika Layzell640832a2017-12-04 13:37:09 -05001069 Unsafe(_binding_0, ) => {
1070 Unsafe (
1071 full!(_visitor.fold_expr_unsafe(_binding_0)),
1072 )
1073 }
Nika Layzell27726662017-10-24 23:16:35 -04001074 Block(_binding_0, ) => {
1075 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001076 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001077 )
1078 }
1079 Assign(_binding_0, ) => {
1080 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001081 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001082 )
1083 }
1084 AssignOp(_binding_0, ) => {
1085 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001086 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001087 )
1088 }
1089 Field(_binding_0, ) => {
1090 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001091 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001092 )
1093 }
Nika Layzell27726662017-10-24 23:16:35 -04001094 Index(_binding_0, ) => {
1095 Index (
1096 _visitor.fold_expr_index(_binding_0),
1097 )
1098 }
1099 Range(_binding_0, ) => {
1100 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001101 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001102 )
1103 }
1104 Path(_binding_0, ) => {
1105 Path (
1106 _visitor.fold_expr_path(_binding_0),
1107 )
1108 }
1109 AddrOf(_binding_0, ) => {
1110 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001111 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001112 )
1113 }
1114 Break(_binding_0, ) => {
1115 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001116 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001117 )
1118 }
1119 Continue(_binding_0, ) => {
1120 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001121 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001122 )
1123 }
1124 Ret(_binding_0, ) => {
1125 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001126 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001127 )
1128 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001129 Macro(_binding_0, ) => {
1130 Macro (
1131 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001132 )
1133 }
1134 Struct(_binding_0, ) => {
1135 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001136 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001137 )
1138 }
1139 Repeat(_binding_0, ) => {
1140 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001141 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001142 )
1143 }
1144 Paren(_binding_0, ) => {
1145 Paren (
1146 _visitor.fold_expr_paren(_binding_0),
1147 )
1148 }
1149 Group(_binding_0, ) => {
1150 Group (
1151 _visitor.fold_expr_group(_binding_0),
1152 )
1153 }
1154 Try(_binding_0, ) => {
1155 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001156 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001157 )
1158 }
1159 Catch(_binding_0, ) => {
1160 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001161 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001162 )
1163 }
1164 Yield(_binding_0, ) => {
1165 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001166 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001167 )
1168 }
1169 }
1170}
1171# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001172pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001173 ExprLoop {
1174 body: _visitor.fold_block(_i . body),
David Tolnay4ba63a02017-12-28 15:53:05 -05001175 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001176 loop_token: _i . loop_token,
1177 colon_token: _i . colon_token,
1178 }
1179}
1180# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001181pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001182 ExprMatch {
1183 match_token: _i . match_token,
1184 brace_token: _i . brace_token,
1185 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1186 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1187 }
1188}
1189# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001190pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001191 ExprMethodCall {
1192 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001193 method: _visitor.fold_ident(_i . method),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001194 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001195 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1196 paren_token: _i . paren_token,
1197 dot_token: _i . dot_token,
1198 lt_token: _i . lt_token,
1199 colon2_token: _i . colon2_token,
1200 gt_token: _i . gt_token,
1201 }
1202}
1203
Nika Layzella6f46c42017-10-26 15:26:16 -04001204pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001205 ExprParen {
1206 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1207 paren_token: _i . paren_token,
1208 }
1209}
1210
Nika Layzella6f46c42017-10-26 15:26:16 -04001211pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001212 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001213 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001214 path: _visitor.fold_path(_i . path),
1215 }
1216}
1217# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001218pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001219 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001220 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1221 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001222 limits: _visitor.fold_range_limits(_i . limits),
1223 }
1224}
1225# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001226pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001227 ExprRepeat {
1228 bracket_token: _i . bracket_token,
1229 semi_token: _i . semi_token,
1230 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1231 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1232 }
1233}
1234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001235pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001236 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001237 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001238 return_token: _i . return_token,
1239 }
1240}
1241# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001242pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001243 ExprStruct {
1244 path: _visitor.fold_path(_i . path),
1245 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001246 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001247 dot2_token: _i . dot2_token,
1248 brace_token: _i . brace_token,
1249 }
1250}
1251# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001252pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001253 ExprTry {
1254 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1255 question_token: _i . question_token,
1256 }
1257}
1258# [ cfg ( feature = "full" ) ]
David Tolnay05362582017-12-26 01:33:57 -05001259pub fn fold_expr_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTuple) -> ExprTuple {
1260 ExprTuple {
1261 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1262 paren_token: _i . paren_token,
David Tolnay05362582017-12-26 01:33:57 -05001263 }
1264}
Nika Layzell27726662017-10-24 23:16:35 -04001265
Nika Layzella6f46c42017-10-26 15:26:16 -04001266pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001267 ExprType {
1268 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1269 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001270 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001271 }
1272}
1273
Nika Layzella6f46c42017-10-26 15:26:16 -04001274pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001275 ExprUnary {
1276 op: _visitor.fold_un_op(_i . op),
1277 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1278 }
1279}
1280# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -05001281pub fn fold_expr_unsafe<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnsafe) -> ExprUnsafe {
1282 ExprUnsafe {
1283 unsafe_token: _i . unsafe_token,
1284 block: _visitor.fold_block(_i . block),
1285 }
1286}
1287# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001288pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001289 ExprWhile {
1290 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1291 body: _visitor.fold_block(_i . body),
David Tolnay4ba63a02017-12-28 15:53:05 -05001292 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001293 colon_token: _i . colon_token,
1294 while_token: _i . while_token,
1295 }
1296}
1297# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001298pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001299 ExprWhileLet {
1300 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1301 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1302 body: _visitor.fold_block(_i . body),
David Tolnay4ba63a02017-12-28 15:53:05 -05001303 label: (_i . label).map(|it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001304 colon_token: _i . colon_token,
1305 while_token: _i . while_token,
1306 let_token: _i . let_token,
1307 eq_token: _i . eq_token,
1308 }
1309}
1310# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001311pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001312 ExprYield {
1313 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001314 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001315 }
1316}
1317
Nika Layzella6f46c42017-10-26 15:26:16 -04001318pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001319 Field {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001320 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001321 vis: _visitor.fold_visibility(_i . vis),
1322 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001323 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001324 colon_token: _i . colon_token,
1325 }
1326}
1327# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001328pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001329 FieldPat {
David Tolnay85b69a42017-12-27 20:43:10 -05001330 member: _visitor.fold_member(_i . member),
Nika Layzell27726662017-10-24 23:16:35 -04001331 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1332 is_shorthand: _i . is_shorthand,
1333 colon_token: _i . colon_token,
1334 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1335 }
1336}
1337# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001338pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001339 FieldValue {
David Tolnay85b69a42017-12-27 20:43:10 -05001340 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1341 member: _visitor.fold_member(_i . member),
1342 colon_token: _i . colon_token,
Nika Layzell27726662017-10-24 23:16:35 -04001343 expr: _visitor.fold_expr(_i . expr),
1344 is_shorthand: _i . is_shorthand,
Nika Layzell27726662017-10-24 23:16:35 -04001345 }
1346}
1347# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001348pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001349 File {
1350 shebang: _i . shebang,
1351 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1352 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1353 }
1354}
1355# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001356pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001357 use ::FnArg::*;
1358 match _i {
1359 SelfRef(_binding_0, ) => {
1360 SelfRef (
1361 _visitor.fold_arg_self_ref(_binding_0),
1362 )
1363 }
1364 SelfValue(_binding_0, ) => {
1365 SelfValue (
1366 _visitor.fold_arg_self(_binding_0),
1367 )
1368 }
1369 Captured(_binding_0, ) => {
1370 Captured (
1371 _visitor.fold_arg_captured(_binding_0),
1372 )
1373 }
David Tolnay80ed55f2017-12-27 22:54:40 -05001374 Inferred(_binding_0, ) => {
1375 Inferred (
1376 _visitor.fold_pat(_binding_0),
1377 )
1378 }
Nika Layzell27726662017-10-24 23:16:35 -04001379 Ignored(_binding_0, ) => {
1380 Ignored (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001381 _visitor.fold_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001382 )
1383 }
1384 }
1385}
1386# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001387pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001388 FnDecl {
1389 fn_token: _i . fn_token,
1390 paren_token: _i . paren_token,
1391 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08001392 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04001393 generics: _visitor.fold_generics(_i . generics),
1394 variadic: _i . variadic,
Nika Layzell27726662017-10-24 23:16:35 -04001395 }
1396}
1397# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001398pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001399 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001400 match _i {
1401 Fn(_binding_0, ) => {
1402 Fn (
1403 _visitor.fold_foreign_item_fn(_binding_0),
1404 )
1405 }
1406 Static(_binding_0, ) => {
1407 Static (
1408 _visitor.fold_foreign_item_static(_binding_0),
1409 )
1410 }
David Tolnay199bcbb2017-11-12 10:33:52 -08001411 Type(_binding_0, ) => {
1412 Type (
1413 _visitor.fold_foreign_item_type(_binding_0),
1414 )
1415 }
Nika Layzell27726662017-10-24 23:16:35 -04001416 }
1417}
1418# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001419pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1420 ForeignItemFn {
1421 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1422 vis: _visitor.fold_visibility(_i . vis),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001423 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001424 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1425 semi_token: _i . semi_token,
1426 }
1427}
1428# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001429pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001430 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001431 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1432 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001433 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001434 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001435 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001436 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001437 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnay8894f602017-11-11 12:11:04 -08001438 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001439 }
1440}
David Tolnay199bcbb2017-11-12 10:33:52 -08001441# [ cfg ( feature = "full" ) ]
1442pub fn fold_foreign_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemType) -> ForeignItemType {
1443 ForeignItemType {
1444 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1445 vis: _visitor.fold_visibility(_i . vis),
1446 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001447 ident: _visitor.fold_ident(_i . ident),
David Tolnay199bcbb2017-11-12 10:33:52 -08001448 semi_token: _i . semi_token,
1449 }
1450}
Nika Layzell27726662017-10-24 23:16:35 -04001451
Nika Layzellc08227a2017-12-04 16:30:17 -05001452pub fn fold_generic_argument<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericArgument) -> GenericArgument {
1453 use ::GenericArgument::*;
Nika Layzell357885a2017-12-04 15:47:07 -05001454 match _i {
1455 Lifetime(_binding_0, ) => {
1456 Lifetime (
David Tolnay4ba63a02017-12-28 15:53:05 -05001457 _visitor.fold_lifetime(_binding_0),
Nika Layzell357885a2017-12-04 15:47:07 -05001458 )
1459 }
1460 Type(_binding_0, ) => {
1461 Type (
1462 _visitor.fold_type(_binding_0),
1463 )
1464 }
1465 TypeBinding(_binding_0, ) => {
1466 TypeBinding (
1467 _visitor.fold_type_binding(_binding_0),
1468 )
1469 }
Nika Layzellc680e612017-12-04 19:07:20 -05001470 Const(_binding_0, ) => {
1471 Const (
Nika Layzellce37f332017-12-05 12:01:22 -05001472 _visitor.fold_expr(_binding_0),
Nika Layzellc680e612017-12-04 19:07:20 -05001473 )
1474 }
Nika Layzell357885a2017-12-04 15:47:07 -05001475 }
1476}
1477
David Tolnayc2f1aba2017-11-12 20:29:22 -08001478pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
1479 use ::GenericParam::*;
1480 match _i {
1481 Lifetime(_binding_0, ) => {
1482 Lifetime (
1483 _visitor.fold_lifetime_def(_binding_0),
1484 )
1485 }
1486 Type(_binding_0, ) => {
1487 Type (
1488 _visitor.fold_type_param(_binding_0),
1489 )
1490 }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -05001491 Const(_binding_0, ) => {
1492 Const (
1493 _visitor.fold_const_param(_binding_0),
1494 )
1495 }
David Tolnayc2f1aba2017-11-12 20:29:22 -08001496 }
1497}
1498
Nika Layzella6f46c42017-10-26 15:26:16 -04001499pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001500 Generics {
1501 lt_token: _i . lt_token,
David Tolnayc2f1aba2017-11-12 20:29:22 -08001502 params: FoldHelper::lift(_i . params, |it| { _visitor.fold_generic_param(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001503 gt_token: _i . gt_token,
David Tolnayac997dd2017-12-27 23:18:22 -05001504 where_clause: (_i . where_clause).map(|it| { _visitor.fold_where_clause(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001505 }
1506}
Nika Layzellefb83ba2017-12-19 18:23:55 -05001507
1508pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
David Tolnay4ba63a02017-12-28 15:53:05 -05001509 Ident {
1510 sym: _i . sym,
1511 span: _visitor.fold_span(_i . span),
1512 }
Nika Layzellefb83ba2017-12-19 18:23:55 -05001513}
Nika Layzell27726662017-10-24 23:16:35 -04001514# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001515pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
David Tolnay857628c2017-11-11 12:25:31 -08001516 use ::ImplItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001517 match _i {
1518 Const(_binding_0, ) => {
1519 Const (
1520 _visitor.fold_impl_item_const(_binding_0),
1521 )
1522 }
1523 Method(_binding_0, ) => {
1524 Method (
1525 _visitor.fold_impl_item_method(_binding_0),
1526 )
1527 }
1528 Type(_binding_0, ) => {
1529 Type (
1530 _visitor.fold_impl_item_type(_binding_0),
1531 )
1532 }
1533 Macro(_binding_0, ) => {
1534 Macro (
David Tolnay857628c2017-11-11 12:25:31 -08001535 _visitor.fold_impl_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001536 )
1537 }
1538 }
1539}
1540# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -08001541pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
1542 ImplItemConst {
1543 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1544 vis: _visitor.fold_visibility(_i . vis),
1545 defaultness: _visitor.fold_defaultness(_i . defaultness),
1546 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001547 ident: _visitor.fold_ident(_i . ident),
David Tolnay857628c2017-11-11 12:25:31 -08001548 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001549 ty: _visitor.fold_type(_i . ty),
David Tolnay857628c2017-11-11 12:25:31 -08001550 eq_token: _i . eq_token,
1551 expr: _visitor.fold_expr(_i . expr),
1552 semi_token: _i . semi_token,
1553 }
1554}
1555# [ cfg ( feature = "full" ) ]
1556pub fn fold_impl_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMacro) -> ImplItemMacro {
1557 ImplItemMacro {
1558 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1559 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05001560 semi_token: _i . semi_token,
David Tolnay857628c2017-11-11 12:25:31 -08001561 }
1562}
1563# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001564pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001565 ImplItemMethod {
David Tolnay857628c2017-11-11 12:25:31 -08001566 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001567 vis: _visitor.fold_visibility(_i . vis),
1568 defaultness: _visitor.fold_defaultness(_i . defaultness),
1569 sig: _visitor.fold_method_sig(_i . sig),
1570 block: _visitor.fold_block(_i . block),
1571 }
1572}
1573# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001574pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001575 ImplItemType {
David Tolnay857628c2017-11-11 12:25:31 -08001576 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001577 vis: _visitor.fold_visibility(_i . vis),
1578 defaultness: _visitor.fold_defaultness(_i . defaultness),
1579 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001580 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05001581 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04001582 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001583 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001584 semi_token: _i . semi_token,
1585 }
1586}
1587# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001588pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001589 use ::ImplPolarity::*;
1590 match _i {
1591 Positive => { Positive }
1592 Negative(_binding_0, ) => {
1593 Negative (
1594 _binding_0,
1595 )
1596 }
1597 }
1598}
1599# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001600pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001601 use ::InPlaceKind::*;
1602 match _i {
1603 Arrow(_binding_0, ) => {
1604 Arrow (
1605 _binding_0,
1606 )
1607 }
1608 In(_binding_0, ) => {
1609 In (
1610 _binding_0,
1611 )
1612 }
1613 }
1614}
1615# [ cfg ( feature = "full" ) ]
David Tolnay85b69a42017-12-27 20:43:10 -05001616pub fn fold_index<V: Folder + ?Sized>(_visitor: &mut V, _i: Index) -> Index {
1617 Index {
1618 index: _i . index,
1619 span: _visitor.fold_span(_i . span),
1620 }
1621}
1622# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001623pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001624 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001625 match _i {
1626 ExternCrate(_binding_0, ) => {
1627 ExternCrate (
1628 _visitor.fold_item_extern_crate(_binding_0),
1629 )
1630 }
1631 Use(_binding_0, ) => {
1632 Use (
1633 _visitor.fold_item_use(_binding_0),
1634 )
1635 }
1636 Static(_binding_0, ) => {
1637 Static (
1638 _visitor.fold_item_static(_binding_0),
1639 )
1640 }
1641 Const(_binding_0, ) => {
1642 Const (
1643 _visitor.fold_item_const(_binding_0),
1644 )
1645 }
1646 Fn(_binding_0, ) => {
1647 Fn (
1648 _visitor.fold_item_fn(_binding_0),
1649 )
1650 }
1651 Mod(_binding_0, ) => {
1652 Mod (
1653 _visitor.fold_item_mod(_binding_0),
1654 )
1655 }
1656 ForeignMod(_binding_0, ) => {
1657 ForeignMod (
1658 _visitor.fold_item_foreign_mod(_binding_0),
1659 )
1660 }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001661 Type(_binding_0, ) => {
1662 Type (
1663 _visitor.fold_item_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001664 )
1665 }
1666 Enum(_binding_0, ) => {
1667 Enum (
1668 _visitor.fold_item_enum(_binding_0),
1669 )
1670 }
1671 Struct(_binding_0, ) => {
1672 Struct (
1673 _visitor.fold_item_struct(_binding_0),
1674 )
1675 }
1676 Union(_binding_0, ) => {
1677 Union (
1678 _visitor.fold_item_union(_binding_0),
1679 )
1680 }
1681 Trait(_binding_0, ) => {
1682 Trait (
1683 _visitor.fold_item_trait(_binding_0),
1684 )
1685 }
1686 DefaultImpl(_binding_0, ) => {
1687 DefaultImpl (
1688 _visitor.fold_item_default_impl(_binding_0),
1689 )
1690 }
1691 Impl(_binding_0, ) => {
1692 Impl (
1693 _visitor.fold_item_impl(_binding_0),
1694 )
1695 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001696 Macro(_binding_0, ) => {
1697 Macro (
1698 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001699 )
1700 }
David Tolnay500d8322017-12-18 00:32:51 -08001701 Macro2(_binding_0, ) => {
1702 Macro2 (
1703 _visitor.fold_item_macro2(_binding_0),
1704 )
1705 }
Nika Layzell27726662017-10-24 23:16:35 -04001706 }
1707}
1708# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001709pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1710 ItemConst {
1711 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1712 vis: _visitor.fold_visibility(_i . vis),
1713 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001714 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001715 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001716 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001717 eq_token: _i . eq_token,
1718 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1719 semi_token: _i . semi_token,
1720 }
1721}
1722# [ cfg ( feature = "full" ) ]
1723pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1724 ItemDefaultImpl {
1725 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1726 unsafety: _visitor.fold_unsafety(_i . unsafety),
1727 impl_token: _i . impl_token,
1728 path: _visitor.fold_path(_i . path),
1729 for_token: _i . for_token,
1730 dot2_token: _i . dot2_token,
1731 brace_token: _i . brace_token,
1732 }
1733}
1734# [ cfg ( feature = "full" ) ]
1735pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1736 ItemEnum {
1737 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1738 vis: _visitor.fold_visibility(_i . vis),
1739 enum_token: _i . enum_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001740 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001741 generics: _visitor.fold_generics(_i . generics),
1742 brace_token: _i . brace_token,
1743 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1744 }
1745}
1746# [ cfg ( feature = "full" ) ]
1747pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1748 ItemExternCrate {
1749 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1750 vis: _visitor.fold_visibility(_i . vis),
1751 extern_token: _i . extern_token,
1752 crate_token: _i . crate_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001753 ident: _visitor.fold_ident(_i . ident),
David Tolnay5c4c0b52017-12-28 17:58:54 -05001754 rename: (_i . rename).map(|it| { (
1755 ( it ) . 0,
1756 _visitor.fold_ident(( it ) . 1),
1757 ) }),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001758 semi_token: _i . semi_token,
1759 }
1760}
1761# [ cfg ( feature = "full" ) ]
1762pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1763 ItemFn {
1764 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1765 vis: _visitor.fold_visibility(_i . vis),
1766 constness: _visitor.fold_constness(_i . constness),
1767 unsafety: _visitor.fold_unsafety(_i . unsafety),
1768 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1769 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001770 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001771 block: Box::new(_visitor.fold_block(* _i . block)),
1772 }
1773}
1774# [ cfg ( feature = "full" ) ]
1775pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1776 ItemForeignMod {
1777 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1778 abi: _visitor.fold_abi(_i . abi),
1779 brace_token: _i . brace_token,
1780 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1781 }
1782}
1783# [ cfg ( feature = "full" ) ]
1784pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1785 ItemImpl {
1786 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1787 defaultness: _visitor.fold_defaultness(_i . defaultness),
1788 unsafety: _visitor.fold_unsafety(_i . unsafety),
1789 impl_token: _i . impl_token,
1790 generics: _visitor.fold_generics(_i . generics),
David Tolnay5c4c0b52017-12-28 17:58:54 -05001791 trait_: (_i . trait_).map(|it| { (
1792 _visitor.fold_impl_polarity(( it ) . 0),
1793 _visitor.fold_path(( it ) . 1),
1794 ( it ) . 2,
1795 ) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001796 self_ty: Box::new(_visitor.fold_type(* _i . self_ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001797 brace_token: _i . brace_token,
1798 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1799 }
1800}
1801# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001802pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1803 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001804 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001805 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001806 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05001807 semi_token: _i . semi_token,
David Tolnayc6b55bc2017-11-09 22:48:38 -08001808 }
1809}
1810# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -08001811pub fn fold_item_macro2<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro2) -> ItemMacro2 {
1812 ItemMacro2 {
1813 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1814 vis: _visitor.fold_visibility(_i . vis),
1815 macro_token: _i . macro_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001816 ident: _visitor.fold_ident(_i . ident),
David Tolnay500d8322017-12-18 00:32:51 -08001817 args: _i . args,
1818 body: _i . body,
1819 }
1820}
1821# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001822pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001823 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001824 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001825 vis: _visitor.fold_visibility(_i . vis),
1826 mod_token: _i . mod_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001827 ident: _visitor.fold_ident(_i . ident),
David Tolnay5c4c0b52017-12-28 17:58:54 -05001828 content: (_i . content).map(|it| { (
1829 ( it ) . 0,
1830 FoldHelper::lift(( it ) . 1, |it| { _visitor.fold_item(it) }),
1831 ) }),
Nika Layzell27726662017-10-24 23:16:35 -04001832 semi: _i . semi,
1833 }
1834}
1835# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001836pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001837 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001838 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001839 vis: _visitor.fold_visibility(_i . vis),
1840 static_token: _i . static_token,
1841 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001842 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001843 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001844 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001845 eq_token: _i . eq_token,
1846 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1847 semi_token: _i . semi_token,
1848 }
1849}
1850# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001851pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001852 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001853 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001854 vis: _visitor.fold_visibility(_i . vis),
1855 struct_token: _i . struct_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001856 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001857 generics: _visitor.fold_generics(_i . generics),
1858 data: _visitor.fold_variant_data(_i . data),
1859 semi_token: _i . semi_token,
1860 }
1861}
1862# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001863pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001864 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001865 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001866 vis: _visitor.fold_visibility(_i . vis),
1867 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell0dc6e632017-11-18 12:55:25 -05001868 auto_token: _i . auto_token,
Nika Layzell27726662017-10-24 23:16:35 -04001869 trait_token: _i . trait_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001870 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001871 generics: _visitor.fold_generics(_i . generics),
1872 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001873 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001874 brace_token: _i . brace_token,
1875 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1876 }
1877}
1878# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001879pub fn fold_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemType) -> ItemType {
1880 ItemType {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001881 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001882 vis: _visitor.fold_visibility(_i . vis),
1883 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001884 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001885 generics: _visitor.fold_generics(_i . generics),
1886 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001887 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001888 semi_token: _i . semi_token,
1889 }
1890}
1891# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001892pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001893 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001894 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001895 vis: _visitor.fold_visibility(_i . vis),
1896 union_token: _i . union_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001897 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001898 generics: _visitor.fold_generics(_i . generics),
1899 data: _visitor.fold_variant_data(_i . data),
1900 }
1901}
1902# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001903pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001904 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001905 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001906 vis: _visitor.fold_visibility(_i . vis),
1907 use_token: _i . use_token,
David Tolnay5f332a92017-12-26 00:42:45 -05001908 leading_colon: _i . leading_colon,
1909 prefix: FoldHelper::lift(_i . prefix, |it| { _visitor.fold_ident(it) }),
1910 tree: _visitor.fold_use_tree(_i . tree),
Nika Layzell27726662017-10-24 23:16:35 -04001911 semi_token: _i . semi_token,
1912 }
1913}
1914
David Tolnay4ba63a02017-12-28 15:53:05 -05001915pub fn fold_lifetime<V: Folder + ?Sized>(_visitor: &mut V, _i: Lifetime) -> Lifetime {
1916 Lifetime {
1917 sym: _i . sym,
1918 span: _visitor.fold_span(_i . span),
1919 }
1920}
1921
Nika Layzella6f46c42017-10-26 15:26:16 -04001922pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001923 LifetimeDef {
1924 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnay4ba63a02017-12-28 15:53:05 -05001925 lifetime: _visitor.fold_lifetime(_i . lifetime),
Nika Layzell27726662017-10-24 23:16:35 -04001926 colon_token: _i . colon_token,
David Tolnay4ba63a02017-12-28 15:53:05 -05001927 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_lifetime(it) }),
1928 }
1929}
1930
1931pub fn fold_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: Lit) -> Lit {
1932 Lit {
1933 value: _i . value,
1934 span: _visitor.fold_span(_i . span),
Nika Layzell27726662017-10-24 23:16:35 -04001935 }
1936}
1937# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001938pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001939 Local {
1940 let_token: _i . let_token,
1941 colon_token: _i . colon_token,
1942 eq_token: _i . eq_token,
1943 semi_token: _i . semi_token,
1944 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001945 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001946 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001947 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1948 }
1949}
Nika Layzell27726662017-10-24 23:16:35 -04001950
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,
David Tolnay4ba63a02017-12-28 15:53:05 -05002008 lit: _visitor.fold_lit(_i . lit),
Nika Layzell27726662017-10-24 23:16:35 -04002009 }
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 (
David Tolnay4ba63a02017-12-28 15:53:05 -05002051 _visitor.fold_lit(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002052 )
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 }
Nika Layzell27726662017-10-24 23:16:35 -04002324 }
2325}
2326
Nika Layzella6f46c42017-10-26 15:26:16 -04002327pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002328 use ::TraitBoundModifier::*;
2329 match _i {
2330 None => { None }
2331 Maybe(_binding_0, ) => {
2332 Maybe (
2333 _binding_0,
2334 )
2335 }
2336 }
2337}
2338# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002339pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002340 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002341 match _i {
2342 Const(_binding_0, ) => {
2343 Const (
2344 _visitor.fold_trait_item_const(_binding_0),
2345 )
2346 }
2347 Method(_binding_0, ) => {
2348 Method (
2349 _visitor.fold_trait_item_method(_binding_0),
2350 )
2351 }
2352 Type(_binding_0, ) => {
2353 Type (
2354 _visitor.fold_trait_item_type(_binding_0),
2355 )
2356 }
2357 Macro(_binding_0, ) => {
2358 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002359 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002360 )
2361 }
2362 }
2363}
2364# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002365pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2366 TraitItemConst {
2367 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2368 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002369 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002370 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002371 ty: _visitor.fold_type(_i . ty),
David Tolnay5c4c0b52017-12-28 17:58:54 -05002372 default: (_i . default).map(|it| { (
2373 ( it ) . 0,
2374 _visitor.fold_expr(( it ) . 1),
2375 ) }),
David Tolnayda705bd2017-11-10 21:58:05 -08002376 semi_token: _i . semi_token,
2377 }
2378}
2379# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002380pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2381 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002382 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002383 mac: _visitor.fold_macro(_i . mac),
David Tolnay57292da2017-12-27 21:03:33 -05002384 semi_token: _i . semi_token,
David Tolnayda705bd2017-11-10 21:58:05 -08002385 }
2386}
2387# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002388pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002389 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002390 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002391 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002392 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002393 semi_token: _i . semi_token,
2394 }
2395}
2396# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002397pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002398 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002399 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002400 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002401 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002402 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002403 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002404 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
David Tolnay5c4c0b52017-12-28 17:58:54 -05002405 default: (_i . default).map(|it| { (
2406 ( it ) . 0,
2407 _visitor.fold_type(( it ) . 1),
2408 ) }),
Nika Layzell27726662017-10-24 23:16:35 -04002409 semi_token: _i . semi_token,
2410 }
2411}
2412
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002413pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2414 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002415 match _i {
2416 Slice(_binding_0, ) => {
2417 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002418 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002419 )
2420 }
2421 Array(_binding_0, ) => {
2422 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002423 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002424 )
2425 }
2426 Ptr(_binding_0, ) => {
2427 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002428 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002429 )
2430 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002431 Reference(_binding_0, ) => {
2432 Reference (
2433 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002434 )
2435 }
2436 BareFn(_binding_0, ) => {
2437 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002438 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002439 )
2440 }
2441 Never(_binding_0, ) => {
2442 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002443 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002444 )
2445 }
David Tolnay05362582017-12-26 01:33:57 -05002446 Tuple(_binding_0, ) => {
2447 Tuple (
2448 _visitor.fold_type_tuple(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002449 )
2450 }
2451 Path(_binding_0, ) => {
2452 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002453 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002454 )
2455 }
2456 TraitObject(_binding_0, ) => {
2457 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002458 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002459 )
2460 }
2461 ImplTrait(_binding_0, ) => {
2462 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002463 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002464 )
2465 }
2466 Paren(_binding_0, ) => {
2467 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002468 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002469 )
2470 }
2471 Group(_binding_0, ) => {
2472 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002473 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002474 )
2475 }
2476 Infer(_binding_0, ) => {
2477 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002478 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002479 )
2480 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002481 Macro(_binding_0, ) => {
2482 Macro (
2483 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002484 )
2485 }
2486 }
2487}
2488
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002489pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2490 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002491 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002492 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002493 semi_token: _i . semi_token,
2494 amt: _visitor.fold_expr(_i . amt),
2495 }
2496}
2497
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002498pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2499 TypeBareFn {
2500 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002501 }
2502}
2503
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002504pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2505 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002506 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002507 eq_token: _i . eq_token,
2508 ty: _visitor.fold_type(_i . ty),
2509 }
2510}
2511
2512pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2513 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002514 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002515 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002516 }
2517}
2518
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002519pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2520 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002521 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002522 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002523 }
2524}
2525
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002526pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2527 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002528 underscore_token: _i . underscore_token,
2529 }
2530}
2531
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002532pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2533 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002534 bang_token: _i . bang_token,
2535 }
2536}
2537
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002538pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2539 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002540 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002541 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002542 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002543 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002544 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002545 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002546 }
2547}
2548
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002549pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2550 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002551 match _i {
2552 Trait(_binding_0, _binding_1, ) => {
2553 Trait (
2554 _visitor.fold_poly_trait_ref(_binding_0),
2555 _visitor.fold_trait_bound_modifier(_binding_1),
2556 )
2557 }
2558 Region(_binding_0, ) => {
2559 Region (
David Tolnay4ba63a02017-12-28 15:53:05 -05002560 _visitor.fold_lifetime(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002561 )
2562 }
2563 }
2564}
2565
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002566pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2567 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002568 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002569 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002570 }
2571}
2572
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002573pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2574 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002575 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002576 path: _visitor.fold_path(_i . path),
2577 }
2578}
2579
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002580pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2581 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002582 star_token: _i . star_token,
2583 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002584 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002585 }
2586}
2587
David Tolnay0a89b4d2017-11-13 00:55:45 -08002588pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2589 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002590 and_token: _i . and_token,
David Tolnay4ba63a02017-12-28 15:53:05 -05002591 lifetime: (_i . lifetime).map(|it| { _visitor.fold_lifetime(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002592 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002593 }
2594}
2595
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002596pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2597 TypeSlice {
2598 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002599 bracket_token: _i . bracket_token,
2600 }
2601}
2602
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002603pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2604 TypeTraitObject {
David Tolnaye45b59f2017-12-25 18:44:49 -05002605 dyn_token: _i . dyn_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002606 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002607 }
2608}
2609
David Tolnay05362582017-12-26 01:33:57 -05002610pub fn fold_type_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTuple) -> TypeTuple {
2611 TypeTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002612 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002613 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002614 }
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),
David Tolnay5c4c0b52017-12-28 17:58:54 -05002666 rename: (_i . rename).map(|it| { (
2667 ( it ) . 0,
2668 _visitor.fold_ident(( it ) . 1),
2669 ) }),
David Tolnay5f332a92017-12-26 00:42:45 -05002670 }
2671}
2672# [ cfg ( feature = "full" ) ]
2673pub fn fold_use_tree<V: Folder + ?Sized>(_visitor: &mut V, _i: UseTree) -> UseTree {
2674 use ::UseTree::*;
2675 match _i {
2676 Path(_binding_0, ) => {
2677 Path (
2678 _visitor.fold_use_path(_binding_0),
2679 )
2680 }
2681 Glob(_binding_0, ) => {
2682 Glob (
2683 _visitor.fold_use_glob(_binding_0),
2684 )
2685 }
2686 List(_binding_0, ) => {
2687 List (
2688 _visitor.fold_use_list(_binding_0),
2689 )
2690 }
2691 }
2692}
Nika Layzell27726662017-10-24 23:16:35 -04002693
Nika Layzella6f46c42017-10-26 15:26:16 -04002694pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002695 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002696 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002697 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2698 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002699 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002700 eq_token: _i . eq_token,
2701 }
2702}
2703
Nika Layzella6f46c42017-10-26 15:26:16 -04002704pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002705 use ::VariantData::*;
2706 match _i {
2707 Struct(_binding_0, _binding_1, ) => {
2708 Struct (
2709 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2710 _binding_1,
2711 )
2712 }
2713 Tuple(_binding_0, _binding_1, ) => {
2714 Tuple (
2715 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2716 _binding_1,
2717 )
2718 }
2719 Unit => { Unit }
2720 }
2721}
Nika Layzell27726662017-10-24 23:16:35 -04002722
Nika Layzella6f46c42017-10-26 15:26:16 -04002723pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002724 VisCrate {
2725 pub_token: _i . pub_token,
2726 paren_token: _i . paren_token,
2727 crate_token: _i . crate_token,
2728 }
2729}
2730
Nika Layzella6f46c42017-10-26 15:26:16 -04002731pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002732 VisInherited {
2733 }
2734}
2735
Nika Layzella6f46c42017-10-26 15:26:16 -04002736pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002737 VisPublic {
2738 pub_token: _i . pub_token,
2739 }
2740}
2741
Nika Layzella6f46c42017-10-26 15:26:16 -04002742pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002743 VisRestricted {
2744 pub_token: _i . pub_token,
2745 paren_token: _i . paren_token,
2746 in_token: _i . in_token,
2747 path: Box::new(_visitor.fold_path(* _i . path)),
2748 }
2749}
2750
Nika Layzella6f46c42017-10-26 15:26:16 -04002751pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002752 use ::Visibility::*;
2753 match _i {
2754 Public(_binding_0, ) => {
2755 Public (
2756 _visitor.fold_vis_public(_binding_0),
2757 )
2758 }
2759 Crate(_binding_0, ) => {
2760 Crate (
2761 _visitor.fold_vis_crate(_binding_0),
2762 )
2763 }
2764 Restricted(_binding_0, ) => {
2765 Restricted (
2766 _visitor.fold_vis_restricted(_binding_0),
2767 )
2768 }
2769 Inherited(_binding_0, ) => {
2770 Inherited (
2771 _visitor.fold_vis_inherited(_binding_0),
2772 )
2773 }
2774 }
2775}
2776
Nika Layzella6f46c42017-10-26 15:26:16 -04002777pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002778 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002779 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002780 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002781 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002782 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002783 }
2784}
2785
Nika Layzella6f46c42017-10-26 15:26:16 -04002786pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002787 WhereClause {
2788 where_token: _i . where_token,
2789 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2790 }
2791}
2792
Nika Layzella6f46c42017-10-26 15:26:16 -04002793pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002794 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002795 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002796 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002797 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002798 }
2799}
2800
Nika Layzella6f46c42017-10-26 15:26:16 -04002801pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002802 use ::WherePredicate::*;
2803 match _i {
2804 BoundPredicate(_binding_0, ) => {
2805 BoundPredicate (
2806 _visitor.fold_where_bound_predicate(_binding_0),
2807 )
2808 }
2809 RegionPredicate(_binding_0, ) => {
2810 RegionPredicate (
2811 _visitor.fold_where_region_predicate(_binding_0),
2812 )
2813 }
2814 EqPredicate(_binding_0, ) => {
2815 EqPredicate (
2816 _visitor.fold_where_eq_predicate(_binding_0),
2817 )
2818 }
2819 }
2820}
2821
Nika Layzella6f46c42017-10-26 15:26:16 -04002822pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002823 WhereRegionPredicate {
David Tolnay4ba63a02017-12-28 15:53:05 -05002824 lifetime: _visitor.fold_lifetime(_i . lifetime),
Nika Layzell27726662017-10-24 23:16:35 -04002825 colon_token: _i . colon_token,
David Tolnay4ba63a02017-12-28 15:53:05 -05002826 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_lifetime(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002827 }
2828}
2829