blob: 586a8d7644aa588d36b177a7fda2b3c8d60c2be4 [file] [log] [blame]
Nika Layzell27726662017-10-24 23:16:35 -04001
2// THIS FILE IS AUTOMATICALLY GENERATED; DO NOT EDIT
3
4//! A Folder represents an AST->AST fold; it accepts an AST piece,
5//! and returns a piece of the same type.
6
7// Unreachable code is generated sometimes without the full feature.
8#![allow(unreachable_code)]
9
Nika Layzella6f46c42017-10-26 15:26:16 -040010use *;
Nika Layzell27726662017-10-24 23:16:35 -040011use synom::delimited::Delimited;
12
13trait FoldHelper {
14 type Item;
15 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item;
16}
17
18impl<T> FoldHelper for Vec<T> {
19 type Item = T;
20 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
21 self.into_iter().map(f).collect()
22 }
23}
24
25impl<T, U> FoldHelper for Delimited<T, U> {
26 type Item = T;
27 fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
28 self.into_iter().map(|elem| {
29 let (t, u) = elem.into_tuple();
30 (f(t), u)
31 }).collect::<Vec<(T, Option<U>)>>().into()
32 }
33}
34
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040035
36#[cfg(feature = "full")]
37macro_rules! full {
38 ($e:expr) => { $e }
39}
40
41#[cfg(not(feature = "full"))]
42macro_rules! full {
43 ($e:expr) => { unreachable!() }
44}
45
46
Nika Layzell27726662017-10-24 23:16:35 -040047/// AST->AST fold.
48///
49/// Each method of the Folder trait is a hook to be potentially overridden. Each
50/// method's default implementation recursively visits the substructure of the
51/// input via the `walk` functions, which perform an "identity fold", that
52/// is, they return the same structure that they are given (for example the
53/// `fold_file` method by default calls `fold::walk_file`).
54///
55/// If you want to ensure that your code handles every variant
56/// explicitly, you need to override each method. (And you also need
57/// to monitor future changes to `Folder` in case a new method with a
58/// new default implementation gets introduced.)
59pub trait Folder {
60
Nika Layzella6f46c42017-10-26 15:26:16 -040061fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040062
Nika Layzella6f46c42017-10-26 15:26:16 -040063fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040064
Nika Layzellc08227a2017-12-04 16:30:17 -050065fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040066# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040067fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040068# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040069fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040070# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040071fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040072# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040073fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040074
Nika Layzella6f46c42017-10-26 15:26:16 -040075fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040076
Nika Layzella6f46c42017-10-26 15:26:16 -040077fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040078
Nika Layzella6f46c42017-10-26 15:26:16 -040079fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040080
Nika Layzella6f46c42017-10-26 15:26:16 -040081fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040082
David Tolnayfd6bf5c2017-11-12 09:41:14 -080083fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040084
Nika Layzella6f46c42017-10-26 15:26:16 -040085fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040086# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040087fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040088# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040089fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040090
Nika Layzella6f46c42017-10-26 15:26:16 -040091fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040092
Nika Layzella6f46c42017-10-26 15:26:16 -040093fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040094
Nika Layzella6f46c42017-10-26 15:26:16 -040095fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040096
Nika Layzella6f46c42017-10-26 15:26:16 -040097fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040098# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040099fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500100
101fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400102# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400103fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400104# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400105fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400106
Nika Layzella6f46c42017-10-26 15:26:16 -0400107fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400108
Nika Layzella6f46c42017-10-26 15:26:16 -0400109fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400110# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400111fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400113fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400115fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400116# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400117fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400118
Nika Layzella6f46c42017-10-26 15:26:16 -0400119fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400120# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400121fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400122# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400123fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400124# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400125fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400126
Nika Layzella6f46c42017-10-26 15:26:16 -0400127fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400128
Nika Layzella6f46c42017-10-26 15:26:16 -0400129fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400130# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400131fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400132# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400133fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400135fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400137fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400138# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400139fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400140
Nika Layzella6f46c42017-10-26 15:26:16 -0400141fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400142# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400143fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400144# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400145fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400147fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400148
Nika Layzella6f46c42017-10-26 15:26:16 -0400149fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400150
Nika Layzella6f46c42017-10-26 15:26:16 -0400151fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400152# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400153fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400154# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400155fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400156# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400157fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400158
Nika Layzella6f46c42017-10-26 15:26:16 -0400159fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400160
Nika Layzella6f46c42017-10-26 15:26:16 -0400161fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400162# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400163fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400164# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400165fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400166# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400167fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400169fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400171fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400172# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400173fn fold_expr_tup(&mut self, i: ExprTup) -> ExprTup { fold_expr_tup(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400174# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400175fn fold_expr_tup_field(&mut self, i: ExprTupField) -> ExprTupField { fold_expr_tup_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400176
Nika Layzella6f46c42017-10-26 15:26:16 -0400177fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400178
Nika Layzella6f46c42017-10-26 15:26:16 -0400179fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400180# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500181fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
182# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400183fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400184# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400185fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400187fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400188
Nika Layzella6f46c42017-10-26 15:26:16 -0400189fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400190# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400191fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400192# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400193fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400195fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400197fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400199fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400201fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400202# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400203fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400204# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400205fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800206# [ cfg ( feature = "full" ) ]
207fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400208
Nika Layzellc08227a2017-12-04 16:30:17 -0500209fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500210
David Tolnayc2f1aba2017-11-12 20:29:22 -0800211fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
212
Nika Layzella6f46c42017-10-26 15:26:16 -0400213fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500214
215fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400216# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400217fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400218# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400219fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400220# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800221fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400222# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400223fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400224# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400225fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400226# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400227fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400228# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400229fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400230# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400231fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400233fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400235fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400236# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400237fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400238# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400239fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400240# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400241fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400243fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400244# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400245fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400246# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800247fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400248# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800249fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
250# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400251fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400252# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400253fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400255fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400257fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400258# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800259fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400260# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400261fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400262# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400263fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400264
Nika Layzella6f46c42017-10-26 15:26:16 -0400265fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400266# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400267fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400268# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400269fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400270
David Tolnaydecf28d2017-11-11 11:56:45 -0800271fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
272
Nika Layzella6f46c42017-10-26 15:26:16 -0400273fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400274
Nika Layzella6f46c42017-10-26 15:26:16 -0400275fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400276
Nika Layzella6f46c42017-10-26 15:26:16 -0400277fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400278# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400279fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400280
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800281fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400282
Nika Layzella6f46c42017-10-26 15:26:16 -0400283fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400284
Nika Layzella6f46c42017-10-26 15:26:16 -0400285fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400286
Nika Layzellc08227a2017-12-04 16:30:17 -0500287fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400288# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400289fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400290# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400291fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400292# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400293fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400294# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400295fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400296# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400297fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400298# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400299fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400300# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400301fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400302# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400303fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400304# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400305fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400306# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400307fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400308# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400309fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400310# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400311fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400312
Nika Layzella6f46c42017-10-26 15:26:16 -0400313fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500314
315fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400316# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400317fn fold_path_glob(&mut self, i: PathGlob) -> PathGlob { fold_path_glob(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400318# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400319fn fold_path_list(&mut self, i: PathList) -> PathList { fold_path_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400320# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400321fn fold_path_list_item(&mut self, i: PathListItem) -> PathListItem { fold_path_list_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400322
Nika Layzella6f46c42017-10-26 15:26:16 -0400323fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400324# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400325fn fold_path_simple(&mut self, i: PathSimple) -> PathSimple { fold_path_simple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400326
Nika Layzella6f46c42017-10-26 15:26:16 -0400327fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400328
Nika Layzella6f46c42017-10-26 15:26:16 -0400329fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400330# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400331fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800332
333fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500334
335fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400336# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400337fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400338
Nika Layzella6f46c42017-10-26 15:26:16 -0400339fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400340# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400341fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400342# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400343fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400344# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800345fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400346# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400347fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400348# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400349fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400350
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800351fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400352
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800353fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400354
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800355fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400356
Nika Layzella6f46c42017-10-26 15:26:16 -0400357fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400358
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800359fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
360
361fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
362
363fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
364
365fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
366
367fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
368
369fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
370
371fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
372
373fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
374
375fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
376
David Tolnay0a89b4d2017-11-13 00:55:45 -0800377fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800378
379fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
380
381fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
382
383fn fold_type_tup(&mut self, i: TypeTup) -> TypeTup { fold_type_tup(self, i) }
384
Nika Layzella6f46c42017-10-26 15:26:16 -0400385fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400386
Nika Layzella6f46c42017-10-26 15:26:16 -0400387fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400388
Nika Layzella6f46c42017-10-26 15:26:16 -0400389fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400390
Nika Layzella6f46c42017-10-26 15:26:16 -0400391fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400392# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400393fn fold_view_path(&mut self, i: ViewPath) -> ViewPath { fold_view_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400394
Nika Layzella6f46c42017-10-26 15:26:16 -0400395fn fold_vis_crate(&mut self, i: VisCrate) -> VisCrate { fold_vis_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400396
Nika Layzella6f46c42017-10-26 15:26:16 -0400397fn fold_vis_inherited(&mut self, i: VisInherited) -> VisInherited { fold_vis_inherited(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400398
Nika Layzella6f46c42017-10-26 15:26:16 -0400399fn fold_vis_public(&mut self, i: VisPublic) -> VisPublic { fold_vis_public(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400400
Nika Layzella6f46c42017-10-26 15:26:16 -0400401fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted { fold_vis_restricted(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400402
Nika Layzella6f46c42017-10-26 15:26:16 -0400403fn fold_visibility(&mut self, i: Visibility) -> Visibility { fold_visibility(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400404
Nika Layzella6f46c42017-10-26 15:26:16 -0400405fn fold_where_bound_predicate(&mut self, i: WhereBoundPredicate) -> WhereBoundPredicate { fold_where_bound_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400406
Nika Layzella6f46c42017-10-26 15:26:16 -0400407fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause { fold_where_clause(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400408
Nika Layzella6f46c42017-10-26 15:26:16 -0400409fn fold_where_eq_predicate(&mut self, i: WhereEqPredicate) -> WhereEqPredicate { fold_where_eq_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400410
Nika Layzella6f46c42017-10-26 15:26:16 -0400411fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate { fold_where_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400412
Nika Layzella6f46c42017-10-26 15:26:16 -0400413fn fold_where_region_predicate(&mut self, i: WhereRegionPredicate) -> WhereRegionPredicate { fold_where_region_predicate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400414
415}
416
417
Nika Layzella6f46c42017-10-26 15:26:16 -0400418pub fn fold_abi<V: Folder + ?Sized>(_visitor: &mut V, _i: Abi) -> Abi {
Nika Layzell27726662017-10-24 23:16:35 -0400419 Abi {
420 extern_token: _i . extern_token,
421 kind: _visitor.fold_abi_kind(_i . kind),
422 }
423}
424
Nika Layzella6f46c42017-10-26 15:26:16 -0400425pub fn fold_abi_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: AbiKind) -> AbiKind {
Nika Layzell27726662017-10-24 23:16:35 -0400426 use ::AbiKind::*;
427 match _i {
428 Named(_binding_0, ) => {
429 Named (
430 _binding_0,
431 )
432 }
433 Default => { Default }
434 }
435}
436
Nika Layzellc08227a2017-12-04 16:30:17 -0500437pub fn fold_angle_bracketed_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments {
438 AngleBracketedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -0400439 turbofish: _i . turbofish,
440 lt_token: _i . lt_token,
Nika Layzellc08227a2017-12-04 16:30:17 -0500441 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_generic_argument(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400442 gt_token: _i . gt_token,
443 }
444}
445# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400446pub fn fold_arg_captured<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgCaptured) -> ArgCaptured {
Nika Layzell27726662017-10-24 23:16:35 -0400447 ArgCaptured {
448 pat: _visitor.fold_pat(_i . pat),
449 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800450 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400451 }
452}
453# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400454pub fn fold_arg_self<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelf) -> ArgSelf {
Nika Layzell27726662017-10-24 23:16:35 -0400455 ArgSelf {
456 mutbl: _visitor.fold_mutability(_i . mutbl),
457 self_token: _i . self_token,
458 }
459}
460# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400461pub fn fold_arg_self_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: ArgSelfRef) -> ArgSelfRef {
Nika Layzell27726662017-10-24 23:16:35 -0400462 ArgSelfRef {
463 and_token: _i . and_token,
464 self_token: _i . self_token,
465 lifetime: _i . lifetime,
466 mutbl: _visitor.fold_mutability(_i . mutbl),
467 }
468}
469# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400470pub fn fold_arm<V: Folder + ?Sized>(_visitor: &mut V, _i: Arm) -> Arm {
Nika Layzell27726662017-10-24 23:16:35 -0400471 Arm {
472 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
473 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
474 if_token: _i . if_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400475 guard: (_i . guard).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400476 rocket_token: _i . rocket_token,
477 body: Box::new(_visitor.fold_expr(* _i . body)),
478 comma: _i . comma,
479 }
480}
481
Nika Layzella6f46c42017-10-26 15:26:16 -0400482pub fn fold_attr_style<V: Folder + ?Sized>(_visitor: &mut V, _i: AttrStyle) -> AttrStyle {
Nika Layzell27726662017-10-24 23:16:35 -0400483 use ::AttrStyle::*;
484 match _i {
485 Outer => { Outer }
486 Inner(_binding_0, ) => {
487 Inner (
488 _binding_0,
489 )
490 }
491 }
492}
493
Nika Layzella6f46c42017-10-26 15:26:16 -0400494pub fn fold_attribute<V: Folder + ?Sized>(_visitor: &mut V, _i: Attribute) -> Attribute {
Nika Layzell27726662017-10-24 23:16:35 -0400495 Attribute {
496 style: _visitor.fold_attr_style(_i . style),
497 pound_token: _i . pound_token,
498 bracket_token: _i . bracket_token,
499 path: _visitor.fold_path(_i . path),
500 tts: _i . tts,
501 is_sugared_doc: _i . is_sugared_doc,
502 }
503}
504
Nika Layzella6f46c42017-10-26 15:26:16 -0400505pub fn fold_bare_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArg) -> BareFnArg {
Nika Layzell27726662017-10-24 23:16:35 -0400506 BareFnArg {
507 name: _i . name,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800508 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -0400509 }
510}
511
Nika Layzella6f46c42017-10-26 15:26:16 -0400512pub fn fold_bare_fn_arg_name<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnArgName) -> BareFnArgName {
Nika Layzell27726662017-10-24 23:16:35 -0400513 use ::BareFnArgName::*;
514 match _i {
515 Named(_binding_0, ) => {
516 Named (
Nika Layzellefb83ba2017-12-19 18:23:55 -0500517 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -0400518 )
519 }
520 Wild(_binding_0, ) => {
521 Wild (
522 _binding_0,
523 )
524 }
525 }
526}
527
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800528pub fn fold_bare_fn_type<V: Folder + ?Sized>(_visitor: &mut V, _i: BareFnType) -> BareFnType {
529 BareFnType {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400530 lifetimes: (_i . lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400531 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400532 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzell27726662017-10-24 23:16:35 -0400533 fn_token: _i . fn_token,
534 paren_token: _i . paren_token,
535 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_bare_fn_arg(it) }),
536 variadic: _i . variadic,
David Tolnayf93b90d2017-11-11 19:21:26 -0800537 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -0400538 }
539}
540
Nika Layzella6f46c42017-10-26 15:26:16 -0400541pub fn fold_bin_op<V: Folder + ?Sized>(_visitor: &mut V, _i: BinOp) -> BinOp {
Nika Layzell27726662017-10-24 23:16:35 -0400542 use ::BinOp::*;
543 match _i {
544 Add(_binding_0, ) => {
545 Add (
546 _binding_0,
547 )
548 }
549 Sub(_binding_0, ) => {
550 Sub (
551 _binding_0,
552 )
553 }
554 Mul(_binding_0, ) => {
555 Mul (
556 _binding_0,
557 )
558 }
559 Div(_binding_0, ) => {
560 Div (
561 _binding_0,
562 )
563 }
564 Rem(_binding_0, ) => {
565 Rem (
566 _binding_0,
567 )
568 }
569 And(_binding_0, ) => {
570 And (
571 _binding_0,
572 )
573 }
574 Or(_binding_0, ) => {
575 Or (
576 _binding_0,
577 )
578 }
579 BitXor(_binding_0, ) => {
580 BitXor (
581 _binding_0,
582 )
583 }
584 BitAnd(_binding_0, ) => {
585 BitAnd (
586 _binding_0,
587 )
588 }
589 BitOr(_binding_0, ) => {
590 BitOr (
591 _binding_0,
592 )
593 }
594 Shl(_binding_0, ) => {
595 Shl (
596 _binding_0,
597 )
598 }
599 Shr(_binding_0, ) => {
600 Shr (
601 _binding_0,
602 )
603 }
604 Eq(_binding_0, ) => {
605 Eq (
606 _binding_0,
607 )
608 }
609 Lt(_binding_0, ) => {
610 Lt (
611 _binding_0,
612 )
613 }
614 Le(_binding_0, ) => {
615 Le (
616 _binding_0,
617 )
618 }
619 Ne(_binding_0, ) => {
620 Ne (
621 _binding_0,
622 )
623 }
624 Ge(_binding_0, ) => {
625 Ge (
626 _binding_0,
627 )
628 }
629 Gt(_binding_0, ) => {
630 Gt (
631 _binding_0,
632 )
633 }
634 AddEq(_binding_0, ) => {
635 AddEq (
636 _binding_0,
637 )
638 }
639 SubEq(_binding_0, ) => {
640 SubEq (
641 _binding_0,
642 )
643 }
644 MulEq(_binding_0, ) => {
645 MulEq (
646 _binding_0,
647 )
648 }
649 DivEq(_binding_0, ) => {
650 DivEq (
651 _binding_0,
652 )
653 }
654 RemEq(_binding_0, ) => {
655 RemEq (
656 _binding_0,
657 )
658 }
659 BitXorEq(_binding_0, ) => {
660 BitXorEq (
661 _binding_0,
662 )
663 }
664 BitAndEq(_binding_0, ) => {
665 BitAndEq (
666 _binding_0,
667 )
668 }
669 BitOrEq(_binding_0, ) => {
670 BitOrEq (
671 _binding_0,
672 )
673 }
674 ShlEq(_binding_0, ) => {
675 ShlEq (
676 _binding_0,
677 )
678 }
679 ShrEq(_binding_0, ) => {
680 ShrEq (
681 _binding_0,
682 )
683 }
684 }
685}
686# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400687pub fn fold_binding_mode<V: Folder + ?Sized>(_visitor: &mut V, _i: BindingMode) -> BindingMode {
Nika Layzell27726662017-10-24 23:16:35 -0400688 use ::BindingMode::*;
689 match _i {
690 ByRef(_binding_0, _binding_1, ) => {
691 ByRef (
692 _binding_0,
693 _visitor.fold_mutability(_binding_1),
694 )
695 }
696 ByValue(_binding_0, ) => {
697 ByValue (
698 _visitor.fold_mutability(_binding_0),
699 )
700 }
701 }
702}
703# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400704pub fn fold_block<V: Folder + ?Sized>(_visitor: &mut V, _i: Block) -> Block {
Nika Layzell27726662017-10-24 23:16:35 -0400705 Block {
706 brace_token: _i . brace_token,
707 stmts: FoldHelper::lift(_i . stmts, |it| { _visitor.fold_stmt(it) }),
708 }
709}
710
Nika Layzella6f46c42017-10-26 15:26:16 -0400711pub fn fold_body<V: Folder + ?Sized>(_visitor: &mut V, _i: Body) -> Body {
Nika Layzell27726662017-10-24 23:16:35 -0400712 use ::Body::*;
713 match _i {
714 Enum(_binding_0, ) => {
715 Enum (
716 _visitor.fold_body_enum(_binding_0),
717 )
718 }
719 Struct(_binding_0, ) => {
720 Struct (
721 _visitor.fold_body_struct(_binding_0),
722 )
723 }
724 }
725}
726
Nika Layzella6f46c42017-10-26 15:26:16 -0400727pub fn fold_body_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyEnum) -> BodyEnum {
Nika Layzell27726662017-10-24 23:16:35 -0400728 BodyEnum {
729 enum_token: _i . enum_token,
730 brace_token: _i . brace_token,
731 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
732 }
733}
734
Nika Layzella6f46c42017-10-26 15:26:16 -0400735pub fn fold_body_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: BodyStruct) -> BodyStruct {
Nika Layzell27726662017-10-24 23:16:35 -0400736 BodyStruct {
737 data: _visitor.fold_variant_data(_i . data),
738 struct_token: _i . struct_token,
739 semi_token: _i . semi_token,
740 }
741}
742
Nika Layzella6f46c42017-10-26 15:26:16 -0400743pub fn fold_bound_lifetimes<V: Folder + ?Sized>(_visitor: &mut V, _i: BoundLifetimes) -> BoundLifetimes {
Nika Layzell27726662017-10-24 23:16:35 -0400744 BoundLifetimes {
745 for_token: _i . for_token,
746 lt_token: _i . lt_token,
747 lifetimes: FoldHelper::lift(_i . lifetimes, |it| { _visitor.fold_lifetime_def(it) }),
748 gt_token: _i . gt_token,
749 }
750}
751# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400752pub fn fold_capture_by<V: Folder + ?Sized>(_visitor: &mut V, _i: CaptureBy) -> CaptureBy {
Nika Layzell27726662017-10-24 23:16:35 -0400753 use ::CaptureBy::*;
754 match _i {
755 Value(_binding_0, ) => {
756 Value (
757 _binding_0,
758 )
759 }
760 Ref => { Ref }
761 }
762}
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500763
764pub fn fold_const_param<V: Folder + ?Sized>(_visitor: &mut V, _i: ConstParam) -> ConstParam {
765 ConstParam {
766 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
767 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -0500768 ident: _visitor.fold_ident(_i . ident),
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500769 colon_token: _i . colon_token,
770 ty: _visitor.fold_type(_i . ty),
771 eq_token: _i . eq_token,
772 default: (_i . default).map(|it| { _visitor.fold_expr(it) }),
773 }
774}
Nika Layzell27726662017-10-24 23:16:35 -0400775# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400776pub fn fold_constness<V: Folder + ?Sized>(_visitor: &mut V, _i: Constness) -> Constness {
Nika Layzell27726662017-10-24 23:16:35 -0400777 use ::Constness::*;
778 match _i {
779 Const(_binding_0, ) => {
780 Const (
781 _binding_0,
782 )
783 }
784 NotConst => { NotConst }
785 }
786}
787# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400788pub fn fold_defaultness<V: Folder + ?Sized>(_visitor: &mut V, _i: Defaultness) -> Defaultness {
Nika Layzell27726662017-10-24 23:16:35 -0400789 use ::Defaultness::*;
790 match _i {
791 Default(_binding_0, ) => {
792 Default (
793 _binding_0,
794 )
795 }
796 Final => { Final }
797 }
798}
799
Nika Layzella6f46c42017-10-26 15:26:16 -0400800pub fn fold_derive_input<V: Folder + ?Sized>(_visitor: &mut V, _i: DeriveInput) -> DeriveInput {
Nika Layzell27726662017-10-24 23:16:35 -0400801 DeriveInput {
Nika Layzellefb83ba2017-12-19 18:23:55 -0500802 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -0400803 vis: _visitor.fold_visibility(_i . vis),
804 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
805 generics: _visitor.fold_generics(_i . generics),
806 body: _visitor.fold_body(_i . body),
807 }
808}
809
Nika Layzella6f46c42017-10-26 15:26:16 -0400810pub fn fold_expr<V: Folder + ?Sized>(_visitor: &mut V, _i: Expr) -> Expr {
Nika Layzell27726662017-10-24 23:16:35 -0400811 Expr {
812 node: _visitor.fold_expr_kind(_i . node),
813 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
814 }
815}
816# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400817pub fn fold_expr_addr_of<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAddrOf) -> ExprAddrOf {
Nika Layzell27726662017-10-24 23:16:35 -0400818 ExprAddrOf {
819 and_token: _i . and_token,
820 mutbl: _visitor.fold_mutability(_i . mutbl),
821 expr: Box::new(_visitor.fold_expr(* _i . expr)),
822 }
823}
824# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400825pub fn fold_expr_array<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprArray) -> ExprArray {
Nika Layzell27726662017-10-24 23:16:35 -0400826 ExprArray {
827 exprs: FoldHelper::lift(_i . exprs, |it| { _visitor.fold_expr(it) }),
828 bracket_token: _i . bracket_token,
829 }
830}
831# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400832pub fn fold_expr_assign<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssign) -> ExprAssign {
Nika Layzell27726662017-10-24 23:16:35 -0400833 ExprAssign {
834 left: Box::new(_visitor.fold_expr(* _i . left)),
835 right: Box::new(_visitor.fold_expr(* _i . right)),
836 eq_token: _i . eq_token,
837 }
838}
839# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400840pub fn fold_expr_assign_op<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprAssignOp) -> ExprAssignOp {
Nika Layzell27726662017-10-24 23:16:35 -0400841 ExprAssignOp {
842 op: _visitor.fold_bin_op(_i . op),
843 left: Box::new(_visitor.fold_expr(* _i . left)),
844 right: Box::new(_visitor.fold_expr(* _i . right)),
845 }
846}
847
Nika Layzella6f46c42017-10-26 15:26:16 -0400848pub fn fold_expr_binary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBinary) -> ExprBinary {
Nika Layzell27726662017-10-24 23:16:35 -0400849 ExprBinary {
850 op: _visitor.fold_bin_op(_i . op),
851 left: Box::new(_visitor.fold_expr(* _i . left)),
852 right: Box::new(_visitor.fold_expr(* _i . right)),
853 }
854}
855# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400856pub fn fold_expr_block<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBlock) -> ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400857 ExprBlock {
Nika Layzell27726662017-10-24 23:16:35 -0400858 block: _visitor.fold_block(_i . block),
859 }
860}
861# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400862pub fn fold_expr_box<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBox) -> ExprBox {
Nika Layzell27726662017-10-24 23:16:35 -0400863 ExprBox {
864 expr: Box::new(_visitor.fold_expr(* _i . expr)),
865 box_token: _i . box_token,
866 }
867}
868# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400869pub fn fold_expr_break<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprBreak) -> ExprBreak {
Nika Layzell27726662017-10-24 23:16:35 -0400870 ExprBreak {
871 label: _i . label,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400872 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400873 break_token: _i . break_token,
874 }
875}
876
Nika Layzella6f46c42017-10-26 15:26:16 -0400877pub fn fold_expr_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCall) -> ExprCall {
Nika Layzell27726662017-10-24 23:16:35 -0400878 ExprCall {
879 func: Box::new(_visitor.fold_expr(* _i . func)),
880 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
881 paren_token: _i . paren_token,
882 }
883}
884
Nika Layzella6f46c42017-10-26 15:26:16 -0400885pub fn fold_expr_cast<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCast) -> ExprCast {
Nika Layzell27726662017-10-24 23:16:35 -0400886 ExprCast {
887 expr: Box::new(_visitor.fold_expr(* _i . expr)),
888 as_token: _i . as_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800889 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -0400890 }
891}
892# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400893pub fn fold_expr_catch<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprCatch) -> ExprCatch {
Nika Layzell27726662017-10-24 23:16:35 -0400894 ExprCatch {
895 do_token: _i . do_token,
896 catch_token: _i . catch_token,
897 block: _visitor.fold_block(_i . block),
898 }
899}
900# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400901pub fn fold_expr_closure<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprClosure) -> ExprClosure {
Nika Layzell27726662017-10-24 23:16:35 -0400902 ExprClosure {
903 capture: _visitor.fold_capture_by(_i . capture),
904 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
905 body: Box::new(_visitor.fold_expr(* _i . body)),
906 or1_token: _i . or1_token,
907 or2_token: _i . or2_token,
908 }
909}
910# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400911pub fn fold_expr_continue<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprContinue) -> ExprContinue {
Nika Layzell27726662017-10-24 23:16:35 -0400912 ExprContinue {
913 label: _i . label,
914 continue_token: _i . continue_token,
915 }
916}
917# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400918pub fn fold_expr_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprField) -> ExprField {
Nika Layzell27726662017-10-24 23:16:35 -0400919 ExprField {
920 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -0500921 field: _visitor.fold_ident(_i . field),
Nika Layzell27726662017-10-24 23:16:35 -0400922 dot_token: _i . dot_token,
923 }
924}
925# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400926pub fn fold_expr_for_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprForLoop) -> ExprForLoop {
Nika Layzell27726662017-10-24 23:16:35 -0400927 ExprForLoop {
928 pat: Box::new(_visitor.fold_pat(* _i . pat)),
929 expr: Box::new(_visitor.fold_expr(* _i . expr)),
930 body: _visitor.fold_block(_i . body),
931 label: _i . label,
932 for_token: _i . for_token,
933 colon_token: _i . colon_token,
934 in_token: _i . in_token,
935 }
936}
937
Nika Layzella6f46c42017-10-26 15:26:16 -0400938pub fn fold_expr_group<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprGroup) -> ExprGroup {
Nika Layzell27726662017-10-24 23:16:35 -0400939 ExprGroup {
940 expr: Box::new(_visitor.fold_expr(* _i . expr)),
941 group_token: _i . group_token,
942 }
943}
944# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400945pub fn fold_expr_if<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIf) -> ExprIf {
Nika Layzell27726662017-10-24 23:16:35 -0400946 ExprIf {
947 cond: Box::new(_visitor.fold_expr(* _i . cond)),
948 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400949 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400950 if_token: _i . if_token,
951 else_token: _i . else_token,
952 }
953}
954# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400955pub fn fold_expr_if_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIfLet) -> ExprIfLet {
Nika Layzell27726662017-10-24 23:16:35 -0400956 ExprIfLet {
957 pat: Box::new(_visitor.fold_pat(* _i . pat)),
958 expr: Box::new(_visitor.fold_expr(* _i . expr)),
959 if_true: _visitor.fold_block(_i . if_true),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400960 if_false: (_i . if_false).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -0400961 if_token: _i . if_token,
962 let_token: _i . let_token,
963 eq_token: _i . eq_token,
964 else_token: _i . else_token,
965 }
966}
967# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400968pub fn fold_expr_in_place<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprInPlace) -> ExprInPlace {
Nika Layzell27726662017-10-24 23:16:35 -0400969 ExprInPlace {
970 place: Box::new(_visitor.fold_expr(* _i . place)),
971 kind: _visitor.fold_in_place_kind(_i . kind),
972 value: Box::new(_visitor.fold_expr(* _i . value)),
973 }
974}
975
Nika Layzella6f46c42017-10-26 15:26:16 -0400976pub fn fold_expr_index<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprIndex) -> ExprIndex {
Nika Layzell27726662017-10-24 23:16:35 -0400977 ExprIndex {
978 expr: Box::new(_visitor.fold_expr(* _i . expr)),
979 index: Box::new(_visitor.fold_expr(* _i . index)),
980 bracket_token: _i . bracket_token,
981 }
982}
983
Nika Layzella6f46c42017-10-26 15:26:16 -0400984pub fn fold_expr_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprKind) -> ExprKind {
Nika Layzell27726662017-10-24 23:16:35 -0400985 use ::ExprKind::*;
986 match _i {
987 Box(_binding_0, ) => {
988 Box (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400989 full!(_visitor.fold_expr_box(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400990 )
991 }
992 InPlace(_binding_0, ) => {
993 InPlace (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400994 full!(_visitor.fold_expr_in_place(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -0400995 )
996 }
997 Array(_binding_0, ) => {
998 Array (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -0400999 full!(_visitor.fold_expr_array(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001000 )
1001 }
1002 Call(_binding_0, ) => {
1003 Call (
1004 _visitor.fold_expr_call(_binding_0),
1005 )
1006 }
1007 MethodCall(_binding_0, ) => {
1008 MethodCall (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001009 full!(_visitor.fold_expr_method_call(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001010 )
1011 }
1012 Tup(_binding_0, ) => {
1013 Tup (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001014 full!(_visitor.fold_expr_tup(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001015 )
1016 }
1017 Binary(_binding_0, ) => {
1018 Binary (
1019 _visitor.fold_expr_binary(_binding_0),
1020 )
1021 }
1022 Unary(_binding_0, ) => {
1023 Unary (
1024 _visitor.fold_expr_unary(_binding_0),
1025 )
1026 }
1027 Lit(_binding_0, ) => {
1028 Lit (
1029 _binding_0,
1030 )
1031 }
1032 Cast(_binding_0, ) => {
1033 Cast (
1034 _visitor.fold_expr_cast(_binding_0),
1035 )
1036 }
1037 Type(_binding_0, ) => {
1038 Type (
1039 _visitor.fold_expr_type(_binding_0),
1040 )
1041 }
1042 If(_binding_0, ) => {
1043 If (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001044 full!(_visitor.fold_expr_if(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001045 )
1046 }
1047 IfLet(_binding_0, ) => {
1048 IfLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001049 full!(_visitor.fold_expr_if_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001050 )
1051 }
1052 While(_binding_0, ) => {
1053 While (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001054 full!(_visitor.fold_expr_while(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001055 )
1056 }
1057 WhileLet(_binding_0, ) => {
1058 WhileLet (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001059 full!(_visitor.fold_expr_while_let(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001060 )
1061 }
1062 ForLoop(_binding_0, ) => {
1063 ForLoop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001064 full!(_visitor.fold_expr_for_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001065 )
1066 }
1067 Loop(_binding_0, ) => {
1068 Loop (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001069 full!(_visitor.fold_expr_loop(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001070 )
1071 }
1072 Match(_binding_0, ) => {
1073 Match (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001074 full!(_visitor.fold_expr_match(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001075 )
1076 }
1077 Closure(_binding_0, ) => {
1078 Closure (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001079 full!(_visitor.fold_expr_closure(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001080 )
1081 }
Nika Layzell640832a2017-12-04 13:37:09 -05001082 Unsafe(_binding_0, ) => {
1083 Unsafe (
1084 full!(_visitor.fold_expr_unsafe(_binding_0)),
1085 )
1086 }
Nika Layzell27726662017-10-24 23:16:35 -04001087 Block(_binding_0, ) => {
1088 Block (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001089 full!(_visitor.fold_expr_block(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001090 )
1091 }
1092 Assign(_binding_0, ) => {
1093 Assign (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001094 full!(_visitor.fold_expr_assign(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001095 )
1096 }
1097 AssignOp(_binding_0, ) => {
1098 AssignOp (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001099 full!(_visitor.fold_expr_assign_op(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001100 )
1101 }
1102 Field(_binding_0, ) => {
1103 Field (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001104 full!(_visitor.fold_expr_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001105 )
1106 }
1107 TupField(_binding_0, ) => {
1108 TupField (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001109 full!(_visitor.fold_expr_tup_field(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001110 )
1111 }
1112 Index(_binding_0, ) => {
1113 Index (
1114 _visitor.fold_expr_index(_binding_0),
1115 )
1116 }
1117 Range(_binding_0, ) => {
1118 Range (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001119 full!(_visitor.fold_expr_range(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001120 )
1121 }
1122 Path(_binding_0, ) => {
1123 Path (
1124 _visitor.fold_expr_path(_binding_0),
1125 )
1126 }
1127 AddrOf(_binding_0, ) => {
1128 AddrOf (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001129 full!(_visitor.fold_expr_addr_of(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001130 )
1131 }
1132 Break(_binding_0, ) => {
1133 Break (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001134 full!(_visitor.fold_expr_break(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001135 )
1136 }
1137 Continue(_binding_0, ) => {
1138 Continue (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001139 full!(_visitor.fold_expr_continue(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001140 )
1141 }
1142 Ret(_binding_0, ) => {
1143 Ret (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001144 full!(_visitor.fold_expr_ret(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001145 )
1146 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001147 Macro(_binding_0, ) => {
1148 Macro (
1149 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001150 )
1151 }
1152 Struct(_binding_0, ) => {
1153 Struct (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001154 full!(_visitor.fold_expr_struct(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001155 )
1156 }
1157 Repeat(_binding_0, ) => {
1158 Repeat (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001159 full!(_visitor.fold_expr_repeat(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001160 )
1161 }
1162 Paren(_binding_0, ) => {
1163 Paren (
1164 _visitor.fold_expr_paren(_binding_0),
1165 )
1166 }
1167 Group(_binding_0, ) => {
1168 Group (
1169 _visitor.fold_expr_group(_binding_0),
1170 )
1171 }
1172 Try(_binding_0, ) => {
1173 Try (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001174 full!(_visitor.fold_expr_try(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001175 )
1176 }
1177 Catch(_binding_0, ) => {
1178 Catch (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001179 full!(_visitor.fold_expr_catch(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001180 )
1181 }
1182 Yield(_binding_0, ) => {
1183 Yield (
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001184 full!(_visitor.fold_expr_yield(_binding_0)),
Nika Layzell27726662017-10-24 23:16:35 -04001185 )
1186 }
1187 }
1188}
1189# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001190pub fn fold_expr_loop<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprLoop) -> ExprLoop {
Nika Layzell27726662017-10-24 23:16:35 -04001191 ExprLoop {
1192 body: _visitor.fold_block(_i . body),
1193 label: _i . label,
1194 loop_token: _i . loop_token,
1195 colon_token: _i . colon_token,
1196 }
1197}
1198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001199pub fn fold_expr_match<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMatch) -> ExprMatch {
Nika Layzell27726662017-10-24 23:16:35 -04001200 ExprMatch {
1201 match_token: _i . match_token,
1202 brace_token: _i . brace_token,
1203 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1204 arms: FoldHelper::lift(_i . arms, |it| { _visitor.fold_arm(it) }),
1205 }
1206}
1207# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001208pub fn fold_expr_method_call<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprMethodCall) -> ExprMethodCall {
Nika Layzell27726662017-10-24 23:16:35 -04001209 ExprMethodCall {
1210 expr: Box::new(_visitor.fold_expr(* _i . expr)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001211 method: _visitor.fold_ident(_i . method),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001212 typarams: FoldHelper::lift(_i . typarams, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001213 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1214 paren_token: _i . paren_token,
1215 dot_token: _i . dot_token,
1216 lt_token: _i . lt_token,
1217 colon2_token: _i . colon2_token,
1218 gt_token: _i . gt_token,
1219 }
1220}
1221
Nika Layzella6f46c42017-10-26 15:26:16 -04001222pub fn fold_expr_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprParen) -> ExprParen {
Nika Layzell27726662017-10-24 23:16:35 -04001223 ExprParen {
1224 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1225 paren_token: _i . paren_token,
1226 }
1227}
1228
Nika Layzella6f46c42017-10-26 15:26:16 -04001229pub fn fold_expr_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprPath) -> ExprPath {
Nika Layzell27726662017-10-24 23:16:35 -04001230 ExprPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001231 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001232 path: _visitor.fold_path(_i . path),
1233 }
1234}
1235# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001236pub fn fold_expr_range<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRange) -> ExprRange {
Nika Layzell27726662017-10-24 23:16:35 -04001237 ExprRange {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001238 from: (_i . from).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
1239 to: (_i . to).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001240 limits: _visitor.fold_range_limits(_i . limits),
1241 }
1242}
1243# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001244pub fn fold_expr_repeat<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRepeat) -> ExprRepeat {
Nika Layzell27726662017-10-24 23:16:35 -04001245 ExprRepeat {
1246 bracket_token: _i . bracket_token,
1247 semi_token: _i . semi_token,
1248 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1249 amt: Box::new(_visitor.fold_expr(* _i . amt)),
1250 }
1251}
1252# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001253pub fn fold_expr_ret<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprRet) -> ExprRet {
Nika Layzell27726662017-10-24 23:16:35 -04001254 ExprRet {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001255 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001256 return_token: _i . return_token,
1257 }
1258}
1259# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001260pub fn fold_expr_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprStruct) -> ExprStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001261 ExprStruct {
1262 path: _visitor.fold_path(_i . path),
1263 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_value(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001264 rest: (_i . rest).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001265 dot2_token: _i . dot2_token,
1266 brace_token: _i . brace_token,
1267 }
1268}
1269# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001270pub fn fold_expr_try<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTry) -> ExprTry {
Nika Layzell27726662017-10-24 23:16:35 -04001271 ExprTry {
1272 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1273 question_token: _i . question_token,
1274 }
1275}
1276# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001277pub fn fold_expr_tup<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTup) -> ExprTup {
Nika Layzell27726662017-10-24 23:16:35 -04001278 ExprTup {
1279 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1280 paren_token: _i . paren_token,
1281 lone_comma: _i . lone_comma,
1282 }
1283}
1284# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001285pub fn fold_expr_tup_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTupField) -> ExprTupField {
Nika Layzell27726662017-10-24 23:16:35 -04001286 ExprTupField {
1287 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1288 field: _i . field,
1289 dot_token: _i . dot_token,
1290 }
1291}
1292
Nika Layzella6f46c42017-10-26 15:26:16 -04001293pub fn fold_expr_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprType) -> ExprType {
Nika Layzell27726662017-10-24 23:16:35 -04001294 ExprType {
1295 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1296 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001297 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001298 }
1299}
1300
Nika Layzella6f46c42017-10-26 15:26:16 -04001301pub fn fold_expr_unary<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnary) -> ExprUnary {
Nika Layzell27726662017-10-24 23:16:35 -04001302 ExprUnary {
1303 op: _visitor.fold_un_op(_i . op),
1304 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1305 }
1306}
1307# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -05001308pub fn fold_expr_unsafe<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprUnsafe) -> ExprUnsafe {
1309 ExprUnsafe {
1310 unsafe_token: _i . unsafe_token,
1311 block: _visitor.fold_block(_i . block),
1312 }
1313}
1314# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001315pub fn fold_expr_while<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhile) -> ExprWhile {
Nika Layzell27726662017-10-24 23:16:35 -04001316 ExprWhile {
1317 cond: Box::new(_visitor.fold_expr(* _i . cond)),
1318 body: _visitor.fold_block(_i . body),
1319 label: _i . label,
1320 colon_token: _i . colon_token,
1321 while_token: _i . while_token,
1322 }
1323}
1324# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001325pub fn fold_expr_while_let<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprWhileLet) -> ExprWhileLet {
Nika Layzell27726662017-10-24 23:16:35 -04001326 ExprWhileLet {
1327 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1328 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1329 body: _visitor.fold_block(_i . body),
1330 label: _i . label,
1331 colon_token: _i . colon_token,
1332 while_token: _i . while_token,
1333 let_token: _i . let_token,
1334 eq_token: _i . eq_token,
1335 }
1336}
1337# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001338pub fn fold_expr_yield<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprYield) -> ExprYield {
Nika Layzell27726662017-10-24 23:16:35 -04001339 ExprYield {
1340 yield_token: _i . yield_token,
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001341 expr: (_i . expr).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001342 }
1343}
1344
Nika Layzella6f46c42017-10-26 15:26:16 -04001345pub fn fold_field<V: Folder + ?Sized>(_visitor: &mut V, _i: Field) -> Field {
Nika Layzell27726662017-10-24 23:16:35 -04001346 Field {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001347 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001348 vis: _visitor.fold_visibility(_i . vis),
1349 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001350 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001351 colon_token: _i . colon_token,
1352 }
1353}
1354# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001355pub fn fold_field_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldPat) -> FieldPat {
Nika Layzell27726662017-10-24 23:16:35 -04001356 FieldPat {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001357 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001358 pat: Box::new(_visitor.fold_pat(* _i . pat)),
1359 is_shorthand: _i . is_shorthand,
1360 colon_token: _i . colon_token,
1361 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1362 }
1363}
1364# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001365pub fn fold_field_value<V: Folder + ?Sized>(_visitor: &mut V, _i: FieldValue) -> FieldValue {
Nika Layzell27726662017-10-24 23:16:35 -04001366 FieldValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001367 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001368 expr: _visitor.fold_expr(_i . expr),
1369 is_shorthand: _i . is_shorthand,
1370 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1371 colon_token: _i . colon_token,
1372 }
1373}
1374# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001375pub fn fold_file<V: Folder + ?Sized>(_visitor: &mut V, _i: File) -> File {
Nika Layzell27726662017-10-24 23:16:35 -04001376 File {
1377 shebang: _i . shebang,
1378 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1379 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_item(it) }),
1380 }
1381}
1382# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001383pub fn fold_fn_arg<V: Folder + ?Sized>(_visitor: &mut V, _i: FnArg) -> FnArg {
Nika Layzell27726662017-10-24 23:16:35 -04001384 use ::FnArg::*;
1385 match _i {
1386 SelfRef(_binding_0, ) => {
1387 SelfRef (
1388 _visitor.fold_arg_self_ref(_binding_0),
1389 )
1390 }
1391 SelfValue(_binding_0, ) => {
1392 SelfValue (
1393 _visitor.fold_arg_self(_binding_0),
1394 )
1395 }
1396 Captured(_binding_0, ) => {
1397 Captured (
1398 _visitor.fold_arg_captured(_binding_0),
1399 )
1400 }
1401 Ignored(_binding_0, ) => {
1402 Ignored (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001403 _visitor.fold_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001404 )
1405 }
1406 }
1407}
1408# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001409pub fn fold_fn_decl<V: Folder + ?Sized>(_visitor: &mut V, _i: FnDecl) -> FnDecl {
Nika Layzell27726662017-10-24 23:16:35 -04001410 FnDecl {
1411 fn_token: _i . fn_token,
1412 paren_token: _i . paren_token,
1413 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_fn_arg(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08001414 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04001415 generics: _visitor.fold_generics(_i . generics),
1416 variadic: _i . variadic,
1417 dot_tokens: _i . dot_tokens,
1418 }
1419}
1420# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001421pub fn fold_foreign_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItem) -> ForeignItem {
David Tolnay8894f602017-11-11 12:11:04 -08001422 use ::ForeignItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001423 match _i {
1424 Fn(_binding_0, ) => {
1425 Fn (
1426 _visitor.fold_foreign_item_fn(_binding_0),
1427 )
1428 }
1429 Static(_binding_0, ) => {
1430 Static (
1431 _visitor.fold_foreign_item_static(_binding_0),
1432 )
1433 }
David Tolnay199bcbb2017-11-12 10:33:52 -08001434 Type(_binding_0, ) => {
1435 Type (
1436 _visitor.fold_foreign_item_type(_binding_0),
1437 )
1438 }
Nika Layzell27726662017-10-24 23:16:35 -04001439 }
1440}
1441# [ cfg ( feature = "full" ) ]
David Tolnay8894f602017-11-11 12:11:04 -08001442pub fn fold_foreign_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemFn) -> ForeignItemFn {
1443 ForeignItemFn {
1444 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1445 vis: _visitor.fold_visibility(_i . vis),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001446 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001447 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
1448 semi_token: _i . semi_token,
1449 }
1450}
1451# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001452pub fn fold_foreign_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemStatic) -> ForeignItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001453 ForeignItemStatic {
David Tolnay8894f602017-11-11 12:11:04 -08001454 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1455 vis: _visitor.fold_visibility(_i . vis),
Nika Layzell27726662017-10-24 23:16:35 -04001456 static_token: _i . static_token,
Nika Layzell27726662017-10-24 23:16:35 -04001457 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001458 ident: _visitor.fold_ident(_i . ident),
David Tolnay8894f602017-11-11 12:11:04 -08001459 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001460 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnay8894f602017-11-11 12:11:04 -08001461 semi_token: _i . semi_token,
Nika Layzell27726662017-10-24 23:16:35 -04001462 }
1463}
David Tolnay199bcbb2017-11-12 10:33:52 -08001464# [ cfg ( feature = "full" ) ]
1465pub fn fold_foreign_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ForeignItemType) -> ForeignItemType {
1466 ForeignItemType {
1467 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1468 vis: _visitor.fold_visibility(_i . vis),
1469 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001470 ident: _visitor.fold_ident(_i . ident),
David Tolnay199bcbb2017-11-12 10:33:52 -08001471 semi_token: _i . semi_token,
1472 }
1473}
Nika Layzell27726662017-10-24 23:16:35 -04001474
Nika Layzellc08227a2017-12-04 16:30:17 -05001475pub fn fold_generic_argument<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericArgument) -> GenericArgument {
1476 use ::GenericArgument::*;
Nika Layzell357885a2017-12-04 15:47:07 -05001477 match _i {
1478 Lifetime(_binding_0, ) => {
1479 Lifetime (
1480 _binding_0,
1481 )
1482 }
1483 Type(_binding_0, ) => {
1484 Type (
1485 _visitor.fold_type(_binding_0),
1486 )
1487 }
1488 TypeBinding(_binding_0, ) => {
1489 TypeBinding (
1490 _visitor.fold_type_binding(_binding_0),
1491 )
1492 }
Nika Layzellc680e612017-12-04 19:07:20 -05001493 Const(_binding_0, ) => {
1494 Const (
Nika Layzellce37f332017-12-05 12:01:22 -05001495 _visitor.fold_expr(_binding_0),
Nika Layzellc680e612017-12-04 19:07:20 -05001496 )
1497 }
Nika Layzell357885a2017-12-04 15:47:07 -05001498 }
1499}
1500
David Tolnayc2f1aba2017-11-12 20:29:22 -08001501pub fn fold_generic_param<V: Folder + ?Sized>(_visitor: &mut V, _i: GenericParam) -> GenericParam {
1502 use ::GenericParam::*;
1503 match _i {
1504 Lifetime(_binding_0, ) => {
1505 Lifetime (
1506 _visitor.fold_lifetime_def(_binding_0),
1507 )
1508 }
1509 Type(_binding_0, ) => {
1510 Type (
1511 _visitor.fold_type_param(_binding_0),
1512 )
1513 }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -05001514 Const(_binding_0, ) => {
1515 Const (
1516 _visitor.fold_const_param(_binding_0),
1517 )
1518 }
David Tolnayc2f1aba2017-11-12 20:29:22 -08001519 }
1520}
1521
Nika Layzella6f46c42017-10-26 15:26:16 -04001522pub fn fold_generics<V: Folder + ?Sized>(_visitor: &mut V, _i: Generics) -> Generics {
Nika Layzell27726662017-10-24 23:16:35 -04001523 Generics {
1524 lt_token: _i . lt_token,
David Tolnayc2f1aba2017-11-12 20:29:22 -08001525 params: FoldHelper::lift(_i . params, |it| { _visitor.fold_generic_param(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001526 gt_token: _i . gt_token,
Nika Layzell27726662017-10-24 23:16:35 -04001527 where_clause: _visitor.fold_where_clause(_i . where_clause),
1528 }
1529}
Nika Layzellefb83ba2017-12-19 18:23:55 -05001530
1531pub fn fold_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: Ident) -> Ident {
1532 _i
1533}
Nika Layzell27726662017-10-24 23:16:35 -04001534# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001535pub fn fold_impl_item<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItem) -> ImplItem {
David Tolnay857628c2017-11-11 12:25:31 -08001536 use ::ImplItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04001537 match _i {
1538 Const(_binding_0, ) => {
1539 Const (
1540 _visitor.fold_impl_item_const(_binding_0),
1541 )
1542 }
1543 Method(_binding_0, ) => {
1544 Method (
1545 _visitor.fold_impl_item_method(_binding_0),
1546 )
1547 }
1548 Type(_binding_0, ) => {
1549 Type (
1550 _visitor.fold_impl_item_type(_binding_0),
1551 )
1552 }
1553 Macro(_binding_0, ) => {
1554 Macro (
David Tolnay857628c2017-11-11 12:25:31 -08001555 _visitor.fold_impl_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001556 )
1557 }
1558 }
1559}
1560# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -08001561pub fn fold_impl_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemConst) -> ImplItemConst {
1562 ImplItemConst {
1563 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1564 vis: _visitor.fold_visibility(_i . vis),
1565 defaultness: _visitor.fold_defaultness(_i . defaultness),
1566 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001567 ident: _visitor.fold_ident(_i . ident),
David Tolnay857628c2017-11-11 12:25:31 -08001568 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001569 ty: _visitor.fold_type(_i . ty),
David Tolnay857628c2017-11-11 12:25:31 -08001570 eq_token: _i . eq_token,
1571 expr: _visitor.fold_expr(_i . expr),
1572 semi_token: _i . semi_token,
1573 }
1574}
1575# [ cfg ( feature = "full" ) ]
1576pub fn fold_impl_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMacro) -> ImplItemMacro {
1577 ImplItemMacro {
1578 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1579 mac: _visitor.fold_macro(_i . mac),
1580 }
1581}
1582# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001583pub fn fold_impl_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemMethod) -> ImplItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04001584 ImplItemMethod {
David Tolnay857628c2017-11-11 12:25:31 -08001585 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001586 vis: _visitor.fold_visibility(_i . vis),
1587 defaultness: _visitor.fold_defaultness(_i . defaultness),
1588 sig: _visitor.fold_method_sig(_i . sig),
1589 block: _visitor.fold_block(_i . block),
1590 }
1591}
1592# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001593pub fn fold_impl_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplItemType) -> ImplItemType {
Nika Layzell27726662017-10-24 23:16:35 -04001594 ImplItemType {
David Tolnay857628c2017-11-11 12:25:31 -08001595 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001596 vis: _visitor.fold_visibility(_i . vis),
1597 defaultness: _visitor.fold_defaultness(_i . defaultness),
1598 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001599 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05001600 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04001601 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001602 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04001603 semi_token: _i . semi_token,
1604 }
1605}
1606# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001607pub fn fold_impl_polarity<V: Folder + ?Sized>(_visitor: &mut V, _i: ImplPolarity) -> ImplPolarity {
Nika Layzell27726662017-10-24 23:16:35 -04001608 use ::ImplPolarity::*;
1609 match _i {
1610 Positive => { Positive }
1611 Negative(_binding_0, ) => {
1612 Negative (
1613 _binding_0,
1614 )
1615 }
1616 }
1617}
1618# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001619pub fn fold_in_place_kind<V: Folder + ?Sized>(_visitor: &mut V, _i: InPlaceKind) -> InPlaceKind {
Nika Layzell27726662017-10-24 23:16:35 -04001620 use ::InPlaceKind::*;
1621 match _i {
1622 Arrow(_binding_0, ) => {
1623 Arrow (
1624 _binding_0,
1625 )
1626 }
1627 In(_binding_0, ) => {
1628 In (
1629 _binding_0,
1630 )
1631 }
1632 }
1633}
1634# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001635pub fn fold_item<V: Folder + ?Sized>(_visitor: &mut V, _i: Item) -> Item {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001636 use ::Item::*;
Nika Layzell27726662017-10-24 23:16:35 -04001637 match _i {
1638 ExternCrate(_binding_0, ) => {
1639 ExternCrate (
1640 _visitor.fold_item_extern_crate(_binding_0),
1641 )
1642 }
1643 Use(_binding_0, ) => {
1644 Use (
1645 _visitor.fold_item_use(_binding_0),
1646 )
1647 }
1648 Static(_binding_0, ) => {
1649 Static (
1650 _visitor.fold_item_static(_binding_0),
1651 )
1652 }
1653 Const(_binding_0, ) => {
1654 Const (
1655 _visitor.fold_item_const(_binding_0),
1656 )
1657 }
1658 Fn(_binding_0, ) => {
1659 Fn (
1660 _visitor.fold_item_fn(_binding_0),
1661 )
1662 }
1663 Mod(_binding_0, ) => {
1664 Mod (
1665 _visitor.fold_item_mod(_binding_0),
1666 )
1667 }
1668 ForeignMod(_binding_0, ) => {
1669 ForeignMod (
1670 _visitor.fold_item_foreign_mod(_binding_0),
1671 )
1672 }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001673 Type(_binding_0, ) => {
1674 Type (
1675 _visitor.fold_item_type(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001676 )
1677 }
1678 Enum(_binding_0, ) => {
1679 Enum (
1680 _visitor.fold_item_enum(_binding_0),
1681 )
1682 }
1683 Struct(_binding_0, ) => {
1684 Struct (
1685 _visitor.fold_item_struct(_binding_0),
1686 )
1687 }
1688 Union(_binding_0, ) => {
1689 Union (
1690 _visitor.fold_item_union(_binding_0),
1691 )
1692 }
1693 Trait(_binding_0, ) => {
1694 Trait (
1695 _visitor.fold_item_trait(_binding_0),
1696 )
1697 }
1698 DefaultImpl(_binding_0, ) => {
1699 DefaultImpl (
1700 _visitor.fold_item_default_impl(_binding_0),
1701 )
1702 }
1703 Impl(_binding_0, ) => {
1704 Impl (
1705 _visitor.fold_item_impl(_binding_0),
1706 )
1707 }
David Tolnaydecf28d2017-11-11 11:56:45 -08001708 Macro(_binding_0, ) => {
1709 Macro (
1710 _visitor.fold_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001711 )
1712 }
David Tolnay500d8322017-12-18 00:32:51 -08001713 Macro2(_binding_0, ) => {
1714 Macro2 (
1715 _visitor.fold_item_macro2(_binding_0),
1716 )
1717 }
Nika Layzell27726662017-10-24 23:16:35 -04001718 }
1719}
1720# [ cfg ( feature = "full" ) ]
David Tolnayc6b55bc2017-11-09 22:48:38 -08001721pub fn fold_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemConst) -> ItemConst {
1722 ItemConst {
1723 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1724 vis: _visitor.fold_visibility(_i . vis),
1725 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001726 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001727 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001728 ty: Box::new(_visitor.fold_type(* _i . ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001729 eq_token: _i . eq_token,
1730 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1731 semi_token: _i . semi_token,
1732 }
1733}
1734# [ cfg ( feature = "full" ) ]
1735pub fn fold_item_default_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemDefaultImpl) -> ItemDefaultImpl {
1736 ItemDefaultImpl {
1737 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1738 unsafety: _visitor.fold_unsafety(_i . unsafety),
1739 impl_token: _i . impl_token,
1740 path: _visitor.fold_path(_i . path),
1741 for_token: _i . for_token,
1742 dot2_token: _i . dot2_token,
1743 brace_token: _i . brace_token,
1744 }
1745}
1746# [ cfg ( feature = "full" ) ]
1747pub fn fold_item_enum<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemEnum) -> ItemEnum {
1748 ItemEnum {
1749 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1750 vis: _visitor.fold_visibility(_i . vis),
1751 enum_token: _i . enum_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001752 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001753 generics: _visitor.fold_generics(_i . generics),
1754 brace_token: _i . brace_token,
1755 variants: FoldHelper::lift(_i . variants, |it| { _visitor.fold_variant(it) }),
1756 }
1757}
1758# [ cfg ( feature = "full" ) ]
1759pub fn fold_item_extern_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemExternCrate) -> ItemExternCrate {
1760 ItemExternCrate {
1761 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1762 vis: _visitor.fold_visibility(_i . vis),
1763 extern_token: _i . extern_token,
1764 crate_token: _i . crate_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001765 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001766 rename: _i . rename,
1767 semi_token: _i . semi_token,
1768 }
1769}
1770# [ cfg ( feature = "full" ) ]
1771pub fn fold_item_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemFn) -> ItemFn {
1772 ItemFn {
1773 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1774 vis: _visitor.fold_visibility(_i . vis),
1775 constness: _visitor.fold_constness(_i . constness),
1776 unsafety: _visitor.fold_unsafety(_i . unsafety),
1777 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
1778 decl: Box::new(_visitor.fold_fn_decl(* _i . decl)),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001779 ident: _visitor.fold_ident(_i . ident),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001780 block: Box::new(_visitor.fold_block(* _i . block)),
1781 }
1782}
1783# [ cfg ( feature = "full" ) ]
1784pub fn fold_item_foreign_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemForeignMod) -> ItemForeignMod {
1785 ItemForeignMod {
1786 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1787 abi: _visitor.fold_abi(_i . abi),
1788 brace_token: _i . brace_token,
1789 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_foreign_item(it) }),
1790 }
1791}
1792# [ cfg ( feature = "full" ) ]
1793pub fn fold_item_impl<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemImpl) -> ItemImpl {
1794 ItemImpl {
1795 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1796 defaultness: _visitor.fold_defaultness(_i . defaultness),
1797 unsafety: _visitor.fold_unsafety(_i . unsafety),
1798 impl_token: _i . impl_token,
1799 generics: _visitor.fold_generics(_i . generics),
1800 trait_: _i . trait_,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001801 self_ty: Box::new(_visitor.fold_type(* _i . self_ty)),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001802 brace_token: _i . brace_token,
1803 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_impl_item(it) }),
1804 }
1805}
1806# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08001807pub fn fold_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro) -> ItemMacro {
1808 ItemMacro {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001809 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001810 ident: (_i . ident).map(|it| { _visitor.fold_ident(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08001811 mac: _visitor.fold_macro(_i . mac),
David Tolnayc6b55bc2017-11-09 22:48:38 -08001812 }
1813}
1814# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -08001815pub fn fold_item_macro2<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMacro2) -> ItemMacro2 {
1816 ItemMacro2 {
1817 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1818 vis: _visitor.fold_visibility(_i . vis),
1819 macro_token: _i . macro_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001820 ident: _visitor.fold_ident(_i . ident),
David Tolnay500d8322017-12-18 00:32:51 -08001821 args: _i . args,
1822 body: _i . body,
1823 }
1824}
1825# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001826pub fn fold_item_mod<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemMod) -> ItemMod {
Nika Layzell27726662017-10-24 23:16:35 -04001827 ItemMod {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001828 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001829 vis: _visitor.fold_visibility(_i . vis),
1830 mod_token: _i . mod_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001831 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001832 content: _i . content,
1833 semi: _i . semi,
1834 }
1835}
1836# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001837pub fn fold_item_static<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStatic) -> ItemStatic {
Nika Layzell27726662017-10-24 23:16:35 -04001838 ItemStatic {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001839 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001840 vis: _visitor.fold_visibility(_i . vis),
1841 static_token: _i . static_token,
1842 mutbl: _visitor.fold_mutability(_i . mutbl),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001843 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001844 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001845 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001846 eq_token: _i . eq_token,
1847 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1848 semi_token: _i . semi_token,
1849 }
1850}
1851# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001852pub fn fold_item_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemStruct) -> ItemStruct {
Nika Layzell27726662017-10-24 23:16:35 -04001853 ItemStruct {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001854 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001855 vis: _visitor.fold_visibility(_i . vis),
1856 struct_token: _i . struct_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001857 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001858 generics: _visitor.fold_generics(_i . generics),
1859 data: _visitor.fold_variant_data(_i . data),
1860 semi_token: _i . semi_token,
1861 }
1862}
1863# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001864pub fn fold_item_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemTrait) -> ItemTrait {
Nika Layzell27726662017-10-24 23:16:35 -04001865 ItemTrait {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001866 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001867 vis: _visitor.fold_visibility(_i . vis),
1868 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell0dc6e632017-11-18 12:55:25 -05001869 auto_token: _i . auto_token,
Nika Layzell27726662017-10-24 23:16:35 -04001870 trait_token: _i . trait_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001871 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001872 generics: _visitor.fold_generics(_i . generics),
1873 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001874 supertraits: FoldHelper::lift(_i . supertraits, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001875 brace_token: _i . brace_token,
1876 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_trait_item(it) }),
1877 }
1878}
1879# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001880pub fn fold_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemType) -> ItemType {
1881 ItemType {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001882 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001883 vis: _visitor.fold_visibility(_i . vis),
1884 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001885 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001886 generics: _visitor.fold_generics(_i . generics),
1887 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001888 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04001889 semi_token: _i . semi_token,
1890 }
1891}
1892# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001893pub fn fold_item_union<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUnion) -> ItemUnion {
Nika Layzell27726662017-10-24 23:16:35 -04001894 ItemUnion {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001895 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001896 vis: _visitor.fold_visibility(_i . vis),
1897 union_token: _i . union_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05001898 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001899 generics: _visitor.fold_generics(_i . generics),
1900 data: _visitor.fold_variant_data(_i . data),
1901 }
1902}
1903# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001904pub fn fold_item_use<V: Folder + ?Sized>(_visitor: &mut V, _i: ItemUse) -> ItemUse {
Nika Layzell27726662017-10-24 23:16:35 -04001905 ItemUse {
David Tolnayc6b55bc2017-11-09 22:48:38 -08001906 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04001907 vis: _visitor.fold_visibility(_i . vis),
1908 use_token: _i . use_token,
1909 path: Box::new(_visitor.fold_view_path(* _i . path)),
1910 semi_token: _i . semi_token,
1911 }
1912}
1913
Nika Layzella6f46c42017-10-26 15:26:16 -04001914pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001915 LifetimeDef {
1916 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1917 lifetime: _i . lifetime,
1918 colon_token: _i . colon_token,
1919 bounds: _i . bounds,
1920 }
1921}
1922# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001923pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001924 Local {
1925 let_token: _i . let_token,
1926 colon_token: _i . colon_token,
1927 eq_token: _i . eq_token,
1928 semi_token: _i . semi_token,
1929 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001930 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001931 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001932 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1933 }
1934}
Nika Layzell27726662017-10-24 23:16:35 -04001935# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001936pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001937 use ::MacStmtStyle::*;
1938 match _i {
1939 Semicolon(_binding_0, ) => {
1940 Semicolon (
1941 _binding_0,
1942 )
1943 }
1944 Braces => { Braces }
1945 NoBraces => { NoBraces }
1946 }
1947}
1948
David Tolnaydecf28d2017-11-11 11:56:45 -08001949pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1950 Macro {
1951 path: _visitor.fold_path(_i . path),
1952 bang_token: _i . bang_token,
David Tolnaydecf28d2017-11-11 11:56:45 -08001953 tokens: _i . tokens,
1954 }
1955}
1956
Nika Layzella6f46c42017-10-26 15:26:16 -04001957pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001958 use ::MetaItem::*;
1959 match _i {
1960 Term(_binding_0, ) => {
1961 Term (
Nika Layzellefb83ba2017-12-19 18:23:55 -05001962 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001963 )
1964 }
1965 List(_binding_0, ) => {
1966 List (
1967 _visitor.fold_meta_item_list(_binding_0),
1968 )
1969 }
1970 NameValue(_binding_0, ) => {
1971 NameValue (
1972 _visitor.fold_meta_name_value(_binding_0),
1973 )
1974 }
1975 }
1976}
1977
Nika Layzella6f46c42017-10-26 15:26:16 -04001978pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001979 MetaItemList {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001980 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001981 paren_token: _i . paren_token,
1982 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
1983 }
1984}
1985
Nika Layzella6f46c42017-10-26 15:26:16 -04001986pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04001987 MetaNameValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001988 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001989 eq_token: _i . eq_token,
1990 lit: _i . lit,
1991 }
1992}
1993# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001994pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04001995 MethodSig {
1996 constness: _visitor.fold_constness(_i . constness),
1997 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001998 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05001999 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002000 decl: _visitor.fold_fn_decl(_i . decl),
2001 }
2002}
2003
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002004pub fn fold_mut_type<V: Folder + ?Sized>(_visitor: &mut V, _i: MutType) -> MutType {
2005 MutType {
2006 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04002007 mutability: _visitor.fold_mutability(_i . mutability),
2008 }
2009}
2010
Nika Layzella6f46c42017-10-26 15:26:16 -04002011pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04002012 use ::Mutability::*;
2013 match _i {
2014 Mutable(_binding_0, ) => {
2015 Mutable (
2016 _binding_0,
2017 )
2018 }
2019 Immutable => { Immutable }
2020 }
2021}
2022
Nika Layzella6f46c42017-10-26 15:26:16 -04002023pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04002024 use ::NestedMetaItem::*;
2025 match _i {
2026 MetaItem(_binding_0, ) => {
2027 MetaItem (
2028 _visitor.fold_meta_item(_binding_0),
2029 )
2030 }
2031 Literal(_binding_0, ) => {
2032 Literal (
2033 _binding_0,
2034 )
2035 }
2036 }
2037}
2038
Nika Layzellc08227a2017-12-04 16:30:17 -05002039pub fn fold_parenthesized_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments {
2040 ParenthesizedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -04002041 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002042 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_type(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08002043 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04002044 }
2045}
2046# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002047pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04002048 use ::Pat::*;
2049 match _i {
2050 Wild(_binding_0, ) => {
2051 Wild (
2052 _visitor.fold_pat_wild(_binding_0),
2053 )
2054 }
2055 Ident(_binding_0, ) => {
2056 Ident (
2057 _visitor.fold_pat_ident(_binding_0),
2058 )
2059 }
2060 Struct(_binding_0, ) => {
2061 Struct (
2062 _visitor.fold_pat_struct(_binding_0),
2063 )
2064 }
2065 TupleStruct(_binding_0, ) => {
2066 TupleStruct (
2067 _visitor.fold_pat_tuple_struct(_binding_0),
2068 )
2069 }
2070 Path(_binding_0, ) => {
2071 Path (
2072 _visitor.fold_pat_path(_binding_0),
2073 )
2074 }
2075 Tuple(_binding_0, ) => {
2076 Tuple (
2077 _visitor.fold_pat_tuple(_binding_0),
2078 )
2079 }
2080 Box(_binding_0, ) => {
2081 Box (
2082 _visitor.fold_pat_box(_binding_0),
2083 )
2084 }
2085 Ref(_binding_0, ) => {
2086 Ref (
2087 _visitor.fold_pat_ref(_binding_0),
2088 )
2089 }
2090 Lit(_binding_0, ) => {
2091 Lit (
2092 _visitor.fold_pat_lit(_binding_0),
2093 )
2094 }
2095 Range(_binding_0, ) => {
2096 Range (
2097 _visitor.fold_pat_range(_binding_0),
2098 )
2099 }
2100 Slice(_binding_0, ) => {
2101 Slice (
2102 _visitor.fold_pat_slice(_binding_0),
2103 )
2104 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002105 Macro(_binding_0, ) => {
2106 Macro (
2107 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002108 )
2109 }
2110 }
2111}
2112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002113pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002114 PatBox {
2115 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2116 box_token: _i . box_token,
2117 }
2118}
2119# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002120pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002121 PatIdent {
2122 mode: _visitor.fold_binding_mode(_i . mode),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002123 ident: _visitor.fold_ident(_i . ident),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002124 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002125 at_token: _i . at_token,
2126 }
2127}
2128# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002129pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002130 PatLit {
2131 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2132 }
2133}
2134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002135pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002136 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002137 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002138 path: _visitor.fold_path(_i . path),
2139 }
2140}
2141# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002142pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002143 PatRange {
2144 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2145 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2146 limits: _visitor.fold_range_limits(_i . limits),
2147 }
2148}
2149# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002150pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002151 PatRef {
2152 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2153 mutbl: _visitor.fold_mutability(_i . mutbl),
2154 and_token: _i . and_token,
2155 }
2156}
2157# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002158pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002159 PatSlice {
2160 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002161 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002162 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2163 dot2_token: _i . dot2_token,
2164 comma_token: _i . comma_token,
2165 bracket_token: _i . bracket_token,
2166 }
2167}
2168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002169pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002170 PatStruct {
2171 path: _visitor.fold_path(_i . path),
2172 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2173 brace_token: _i . brace_token,
2174 dot2_token: _i . dot2_token,
2175 }
2176}
2177# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002178pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002179 PatTuple {
2180 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2181 dots_pos: _i . dots_pos,
2182 paren_token: _i . paren_token,
2183 dot2_token: _i . dot2_token,
2184 comma_token: _i . comma_token,
2185 }
2186}
2187# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002188pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002189 PatTupleStruct {
2190 path: _visitor.fold_path(_i . path),
2191 pat: _visitor.fold_pat_tuple(_i . pat),
2192 }
2193}
2194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002195pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002196 PatWild {
2197 underscore_token: _i . underscore_token,
2198 }
2199}
2200
Nika Layzella6f46c42017-10-26 15:26:16 -04002201pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002202 Path {
2203 leading_colon: _i . leading_colon,
2204 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2205 }
2206}
Nika Layzellc08227a2017-12-04 16:30:17 -05002207
2208pub fn fold_path_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: PathArguments) -> PathArguments {
2209 use ::PathArguments::*;
2210 match _i {
2211 None => { None }
2212 AngleBracketed(_binding_0, ) => {
2213 AngleBracketed (
2214 _visitor.fold_angle_bracketed_generic_arguments(_binding_0),
2215 )
2216 }
2217 Parenthesized(_binding_0, ) => {
2218 Parenthesized (
2219 _visitor.fold_parenthesized_generic_arguments(_binding_0),
2220 )
2221 }
2222 }
2223}
Nika Layzell27726662017-10-24 23:16:35 -04002224# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002225pub fn fold_path_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: PathGlob) -> PathGlob {
Nika Layzell27726662017-10-24 23:16:35 -04002226 PathGlob {
2227 path: _visitor.fold_path(_i . path),
2228 colon2_token: _i . colon2_token,
2229 star_token: _i . star_token,
2230 }
2231}
2232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002233pub fn fold_path_list<V: Folder + ?Sized>(_visitor: &mut V, _i: PathList) -> PathList {
Nika Layzell27726662017-10-24 23:16:35 -04002234 PathList {
2235 path: _visitor.fold_path(_i . path),
2236 colon2_token: _i . colon2_token,
2237 brace_token: _i . brace_token,
2238 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_path_list_item(it) }),
2239 }
2240}
2241# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002242pub fn fold_path_list_item<V: Folder + ?Sized>(_visitor: &mut V, _i: PathListItem) -> PathListItem {
Nika Layzell27726662017-10-24 23:16:35 -04002243 PathListItem {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002244 name: _visitor.fold_ident(_i . name),
2245 rename: (_i . rename).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002246 as_token: _i . as_token,
2247 }
2248}
2249
Nika Layzella6f46c42017-10-26 15:26:16 -04002250pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002251 PathSegment {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002252 ident: _visitor.fold_ident(_i . ident),
Nika Layzellc08227a2017-12-04 16:30:17 -05002253 arguments: _visitor.fold_path_arguments(_i . arguments),
Nika Layzell27726662017-10-24 23:16:35 -04002254 }
2255}
2256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002257pub fn fold_path_simple<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSimple) -> PathSimple {
Nika Layzell27726662017-10-24 23:16:35 -04002258 PathSimple {
2259 path: _visitor.fold_path(_i . path),
2260 as_token: _i . as_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002261 rename: (_i . rename).map(|it| { _visitor.fold_ident(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002262 }
2263}
2264
Nika Layzella6f46c42017-10-26 15:26:16 -04002265pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002266 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002267 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002268 trait_ref: _visitor.fold_path(_i . trait_ref),
2269 }
2270}
2271
Nika Layzella6f46c42017-10-26 15:26:16 -04002272pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002273 QSelf {
2274 lt_token: _i . lt_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002275 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002276 position: _i . position,
2277 as_token: _i . as_token,
2278 gt_token: _i . gt_token,
2279 }
2280}
2281# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002282pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002283 use ::RangeLimits::*;
2284 match _i {
2285 HalfOpen(_binding_0, ) => {
2286 HalfOpen (
2287 _binding_0,
2288 )
2289 }
2290 Closed(_binding_0, ) => {
2291 Closed (
2292 _binding_0,
2293 )
2294 }
2295 }
2296}
David Tolnayf93b90d2017-11-11 19:21:26 -08002297
2298pub fn fold_return_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ReturnType) -> ReturnType {
2299 use ::ReturnType::*;
2300 match _i {
2301 Default => { Default }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002302 Type(_binding_0, _binding_1, ) => {
2303 Type (
2304 _visitor.fold_type(_binding_0),
David Tolnayf93b90d2017-11-11 19:21:26 -08002305 _binding_1,
2306 )
2307 }
2308 }
2309}
Nika Layzellefb83ba2017-12-19 18:23:55 -05002310
2311pub fn fold_span<V: Folder + ?Sized>(_visitor: &mut V, _i: Span) -> Span {
2312 _i
2313}
Nika Layzell27726662017-10-24 23:16:35 -04002314# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002315pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002316 use ::Stmt::*;
2317 match _i {
2318 Local(_binding_0, ) => {
2319 Local (
2320 Box::new(_visitor.fold_local(* _binding_0)),
2321 )
2322 }
2323 Item(_binding_0, ) => {
2324 Item (
2325 Box::new(_visitor.fold_item(* _binding_0)),
2326 )
2327 }
2328 Expr(_binding_0, ) => {
2329 Expr (
2330 Box::new(_visitor.fold_expr(* _binding_0)),
2331 )
2332 }
2333 Semi(_binding_0, _binding_1, ) => {
2334 Semi (
2335 Box::new(_visitor.fold_expr(* _binding_0)),
2336 _binding_1,
2337 )
2338 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002339 Macro(_binding_0, ) => {
2340 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002341 _binding_0,
2342 )
2343 }
2344 }
2345}
2346
Nika Layzella6f46c42017-10-26 15:26:16 -04002347pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002348 use ::TraitBoundModifier::*;
2349 match _i {
2350 None => { None }
2351 Maybe(_binding_0, ) => {
2352 Maybe (
2353 _binding_0,
2354 )
2355 }
2356 }
2357}
2358# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002359pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002360 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002361 match _i {
2362 Const(_binding_0, ) => {
2363 Const (
2364 _visitor.fold_trait_item_const(_binding_0),
2365 )
2366 }
2367 Method(_binding_0, ) => {
2368 Method (
2369 _visitor.fold_trait_item_method(_binding_0),
2370 )
2371 }
2372 Type(_binding_0, ) => {
2373 Type (
2374 _visitor.fold_trait_item_type(_binding_0),
2375 )
2376 }
2377 Macro(_binding_0, ) => {
2378 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002379 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002380 )
2381 }
2382 }
2383}
2384# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002385pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2386 TraitItemConst {
2387 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2388 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002389 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002390 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002391 ty: _visitor.fold_type(_i . ty),
David Tolnayda705bd2017-11-10 21:58:05 -08002392 default: _i . default,
2393 semi_token: _i . semi_token,
2394 }
2395}
2396# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002397pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2398 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002399 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002400 mac: _visitor.fold_macro(_i . mac),
David Tolnayda705bd2017-11-10 21:58:05 -08002401 }
2402}
2403# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002404pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002405 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002406 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002407 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002408 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002409 semi_token: _i . semi_token,
2410 }
2411}
2412# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002413pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002414 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002415 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002416 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002417 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002418 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002419 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002420 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002421 default: _i . default,
2422 semi_token: _i . semi_token,
2423 }
2424}
2425
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002426pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2427 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002428 match _i {
2429 Slice(_binding_0, ) => {
2430 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002431 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002432 )
2433 }
2434 Array(_binding_0, ) => {
2435 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002436 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002437 )
2438 }
2439 Ptr(_binding_0, ) => {
2440 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002441 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002442 )
2443 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002444 Reference(_binding_0, ) => {
2445 Reference (
2446 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002447 )
2448 }
2449 BareFn(_binding_0, ) => {
2450 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002451 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002452 )
2453 }
2454 Never(_binding_0, ) => {
2455 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002456 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002457 )
2458 }
2459 Tup(_binding_0, ) => {
2460 Tup (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002461 _visitor.fold_type_tup(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002462 )
2463 }
2464 Path(_binding_0, ) => {
2465 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002466 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002467 )
2468 }
2469 TraitObject(_binding_0, ) => {
2470 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002471 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002472 )
2473 }
2474 ImplTrait(_binding_0, ) => {
2475 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002476 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002477 )
2478 }
2479 Paren(_binding_0, ) => {
2480 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002481 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002482 )
2483 }
2484 Group(_binding_0, ) => {
2485 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002486 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002487 )
2488 }
2489 Infer(_binding_0, ) => {
2490 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002491 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002492 )
2493 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002494 Macro(_binding_0, ) => {
2495 Macro (
2496 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002497 )
2498 }
2499 }
2500}
2501
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002502pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2503 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002504 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002505 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002506 semi_token: _i . semi_token,
2507 amt: _visitor.fold_expr(_i . amt),
2508 }
2509}
2510
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002511pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2512 TypeBareFn {
2513 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002514 }
2515}
2516
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002517pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2518 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002519 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002520 eq_token: _i . eq_token,
2521 ty: _visitor.fold_type(_i . ty),
2522 }
2523}
2524
2525pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2526 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002527 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002528 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002529 }
2530}
2531
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002532pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2533 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002534 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002535 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002536 }
2537}
2538
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002539pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2540 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002541 underscore_token: _i . underscore_token,
2542 }
2543}
2544
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002545pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2546 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002547 bang_token: _i . bang_token,
2548 }
2549}
2550
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002551pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2552 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002553 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002554 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002555 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002556 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002557 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002558 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002559 }
2560}
2561
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002562pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2563 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002564 match _i {
2565 Trait(_binding_0, _binding_1, ) => {
2566 Trait (
2567 _visitor.fold_poly_trait_ref(_binding_0),
2568 _visitor.fold_trait_bound_modifier(_binding_1),
2569 )
2570 }
2571 Region(_binding_0, ) => {
2572 Region (
2573 _binding_0,
2574 )
2575 }
2576 }
2577}
2578
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002579pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2580 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002581 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002582 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002583 }
2584}
2585
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002586pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2587 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002588 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002589 path: _visitor.fold_path(_i . path),
2590 }
2591}
2592
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002593pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2594 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002595 star_token: _i . star_token,
2596 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002597 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002598 }
2599}
2600
David Tolnay0a89b4d2017-11-13 00:55:45 -08002601pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2602 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002603 and_token: _i . and_token,
2604 lifetime: _i . lifetime,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002605 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002606 }
2607}
2608
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002609pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2610 TypeSlice {
2611 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002612 bracket_token: _i . bracket_token,
2613 }
2614}
2615
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002616pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2617 TypeTraitObject {
2618 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002619 }
2620}
2621
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002622pub fn fold_type_tup<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTup) -> TypeTup {
2623 TypeTup {
Nika Layzell27726662017-10-24 23:16:35 -04002624 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002625 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002626 lone_comma: _i . lone_comma,
2627 }
2628}
2629
Nika Layzella6f46c42017-10-26 15:26:16 -04002630pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002631 use ::UnOp::*;
2632 match _i {
2633 Deref(_binding_0, ) => {
2634 Deref (
2635 _binding_0,
2636 )
2637 }
2638 Not(_binding_0, ) => {
2639 Not (
2640 _binding_0,
2641 )
2642 }
2643 Neg(_binding_0, ) => {
2644 Neg (
2645 _binding_0,
2646 )
2647 }
2648 }
2649}
2650
Nika Layzella6f46c42017-10-26 15:26:16 -04002651pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002652 use ::Unsafety::*;
2653 match _i {
2654 Unsafe(_binding_0, ) => {
2655 Unsafe (
2656 _binding_0,
2657 )
2658 }
2659 Normal => { Normal }
2660 }
2661}
2662
Nika Layzella6f46c42017-10-26 15:26:16 -04002663pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002664 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002665 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002666 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2667 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002668 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002669 eq_token: _i . eq_token,
2670 }
2671}
2672
Nika Layzella6f46c42017-10-26 15:26:16 -04002673pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002674 use ::VariantData::*;
2675 match _i {
2676 Struct(_binding_0, _binding_1, ) => {
2677 Struct (
2678 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2679 _binding_1,
2680 )
2681 }
2682 Tuple(_binding_0, _binding_1, ) => {
2683 Tuple (
2684 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2685 _binding_1,
2686 )
2687 }
2688 Unit => { Unit }
2689 }
2690}
2691# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002692pub fn fold_view_path<V: Folder + ?Sized>(_visitor: &mut V, _i: ViewPath) -> ViewPath {
Nika Layzell27726662017-10-24 23:16:35 -04002693 use ::ViewPath::*;
2694 match _i {
2695 Simple(_binding_0, ) => {
2696 Simple (
2697 _visitor.fold_path_simple(_binding_0),
2698 )
2699 }
2700 Glob(_binding_0, ) => {
2701 Glob (
2702 _visitor.fold_path_glob(_binding_0),
2703 )
2704 }
2705 List(_binding_0, ) => {
2706 List (
2707 _visitor.fold_path_list(_binding_0),
2708 )
2709 }
2710 }
2711}
2712
Nika Layzella6f46c42017-10-26 15:26:16 -04002713pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002714 VisCrate {
2715 pub_token: _i . pub_token,
2716 paren_token: _i . paren_token,
2717 crate_token: _i . crate_token,
2718 }
2719}
2720
Nika Layzella6f46c42017-10-26 15:26:16 -04002721pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002722 VisInherited {
2723 }
2724}
2725
Nika Layzella6f46c42017-10-26 15:26:16 -04002726pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002727 VisPublic {
2728 pub_token: _i . pub_token,
2729 }
2730}
2731
Nika Layzella6f46c42017-10-26 15:26:16 -04002732pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002733 VisRestricted {
2734 pub_token: _i . pub_token,
2735 paren_token: _i . paren_token,
2736 in_token: _i . in_token,
2737 path: Box::new(_visitor.fold_path(* _i . path)),
2738 }
2739}
2740
Nika Layzella6f46c42017-10-26 15:26:16 -04002741pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002742 use ::Visibility::*;
2743 match _i {
2744 Public(_binding_0, ) => {
2745 Public (
2746 _visitor.fold_vis_public(_binding_0),
2747 )
2748 }
2749 Crate(_binding_0, ) => {
2750 Crate (
2751 _visitor.fold_vis_crate(_binding_0),
2752 )
2753 }
2754 Restricted(_binding_0, ) => {
2755 Restricted (
2756 _visitor.fold_vis_restricted(_binding_0),
2757 )
2758 }
2759 Inherited(_binding_0, ) => {
2760 Inherited (
2761 _visitor.fold_vis_inherited(_binding_0),
2762 )
2763 }
2764 }
2765}
2766
Nika Layzella6f46c42017-10-26 15:26:16 -04002767pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002768 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002769 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002770 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002771 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002772 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002773 }
2774}
2775
Nika Layzella6f46c42017-10-26 15:26:16 -04002776pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002777 WhereClause {
2778 where_token: _i . where_token,
2779 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2780 }
2781}
2782
Nika Layzella6f46c42017-10-26 15:26:16 -04002783pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002784 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002785 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002786 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002787 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002788 }
2789}
2790
Nika Layzella6f46c42017-10-26 15:26:16 -04002791pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002792 use ::WherePredicate::*;
2793 match _i {
2794 BoundPredicate(_binding_0, ) => {
2795 BoundPredicate (
2796 _visitor.fold_where_bound_predicate(_binding_0),
2797 )
2798 }
2799 RegionPredicate(_binding_0, ) => {
2800 RegionPredicate (
2801 _visitor.fold_where_region_predicate(_binding_0),
2802 )
2803 }
2804 EqPredicate(_binding_0, ) => {
2805 EqPredicate (
2806 _visitor.fold_where_eq_predicate(_binding_0),
2807 )
2808 }
2809 }
2810}
2811
Nika Layzella6f46c42017-10-26 15:26:16 -04002812pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002813 WhereRegionPredicate {
2814 lifetime: _i . lifetime,
2815 colon_token: _i . colon_token,
2816 bounds: _i . bounds,
2817 }
2818}
2819