blob: 0d944e6b89d4bb075200a33d20e61350ed2f05b9 [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)]
David Tolnayf0d63bf2017-12-26 12:29:47 -05009#![cfg_attr(feature = "cargo-clippy", allow(needless_pass_by_value))]
Nika Layzell27726662017-10-24 23:16:35 -040010
Nika Layzella6f46c42017-10-26 15:26:16 -040011use *;
David Tolnayc5ab8c62017-12-26 16:43:39 -050012use delimited::Delimited;
David Tolnay98942562017-12-26 21:24:35 -050013use proc_macro2::Span;
Nika Layzell27726662017-10-24 23:16:35 -040014
15trait FoldHelper {
16 type Item;
17 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item;
18}
19
20impl<T> FoldHelper for Vec<T> {
21 type Item = T;
22 fn lift<F>(self, f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
23 self.into_iter().map(f).collect()
24 }
25}
26
27impl<T, U> FoldHelper for Delimited<T, U> {
28 type Item = T;
29 fn lift<F>(self, mut f: F) -> Self where F: FnMut(Self::Item) -> Self::Item {
30 self.into_iter().map(|elem| {
31 let (t, u) = elem.into_tuple();
32 (f(t), u)
33 }).collect::<Vec<(T, Option<U>)>>().into()
34 }
35}
36
Nika Layzell4ab8d6e2017-10-26 09:45:49 -040037
38#[cfg(feature = "full")]
39macro_rules! full {
40 ($e:expr) => { $e }
41}
42
43#[cfg(not(feature = "full"))]
44macro_rules! full {
45 ($e:expr) => { unreachable!() }
46}
47
48
Nika Layzell27726662017-10-24 23:16:35 -040049/// AST->AST fold.
50///
51/// Each method of the Folder trait is a hook to be potentially overridden. Each
52/// method's default implementation recursively visits the substructure of the
53/// input via the `walk` functions, which perform an "identity fold", that
54/// is, they return the same structure that they are given (for example the
55/// `fold_file` method by default calls `fold::walk_file`).
56///
57/// If you want to ensure that your code handles every variant
58/// explicitly, you need to override each method. (And you also need
59/// to monitor future changes to `Folder` in case a new method with a
60/// new default implementation gets introduced.)
61pub trait Folder {
62
Nika Layzella6f46c42017-10-26 15:26:16 -040063fn fold_abi(&mut self, i: Abi) -> Abi { fold_abi(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040064
Nika Layzella6f46c42017-10-26 15:26:16 -040065fn fold_abi_kind(&mut self, i: AbiKind) -> AbiKind { fold_abi_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040066
Nika Layzellc08227a2017-12-04 16:30:17 -050067fn fold_angle_bracketed_generic_arguments(&mut self, i: AngleBracketedGenericArguments) -> AngleBracketedGenericArguments { fold_angle_bracketed_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040068# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040069fn fold_arg_captured(&mut self, i: ArgCaptured) -> ArgCaptured { fold_arg_captured(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040070# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040071fn fold_arg_self(&mut self, i: ArgSelf) -> ArgSelf { fold_arg_self(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040072# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040073fn fold_arg_self_ref(&mut self, i: ArgSelfRef) -> ArgSelfRef { fold_arg_self_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040074# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040075fn fold_arm(&mut self, i: Arm) -> Arm { fold_arm(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040076
Nika Layzella6f46c42017-10-26 15:26:16 -040077fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle { fold_attr_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040078
Nika Layzella6f46c42017-10-26 15:26:16 -040079fn fold_attribute(&mut self, i: Attribute) -> Attribute { fold_attribute(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040080
Nika Layzella6f46c42017-10-26 15:26:16 -040081fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg { fold_bare_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040082
Nika Layzella6f46c42017-10-26 15:26:16 -040083fn fold_bare_fn_arg_name(&mut self, i: BareFnArgName) -> BareFnArgName { fold_bare_fn_arg_name(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040084
David Tolnayfd6bf5c2017-11-12 09:41:14 -080085fn fold_bare_fn_type(&mut self, i: BareFnType) -> BareFnType { fold_bare_fn_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040086
Nika Layzella6f46c42017-10-26 15:26:16 -040087fn fold_bin_op(&mut self, i: BinOp) -> BinOp { fold_bin_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040088# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040089fn fold_binding_mode(&mut self, i: BindingMode) -> BindingMode { fold_binding_mode(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040090# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -040091fn fold_block(&mut self, i: Block) -> Block { fold_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040092
Nika Layzella6f46c42017-10-26 15:26:16 -040093fn fold_body(&mut self, i: Body) -> Body { fold_body(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040094
Nika Layzella6f46c42017-10-26 15:26:16 -040095fn fold_body_enum(&mut self, i: BodyEnum) -> BodyEnum { fold_body_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040096
Nika Layzella6f46c42017-10-26 15:26:16 -040097fn fold_body_struct(&mut self, i: BodyStruct) -> BodyStruct { fold_body_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -040098
Nika Layzella6f46c42017-10-26 15:26:16 -040099fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes { fold_bound_lifetimes(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400100# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400101fn fold_capture_by(&mut self, i: CaptureBy) -> CaptureBy { fold_capture_by(self, i) }
Nika Layzellf1fdc0b2017-12-04 19:58:32 -0500102
103fn fold_const_param(&mut self, i: ConstParam) -> ConstParam { fold_const_param(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400104# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400105fn fold_constness(&mut self, i: Constness) -> Constness { fold_constness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400106# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400107fn fold_defaultness(&mut self, i: Defaultness) -> Defaultness { fold_defaultness(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400108
Nika Layzella6f46c42017-10-26 15:26:16 -0400109fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput { fold_derive_input(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400110
Nika Layzella6f46c42017-10-26 15:26:16 -0400111fn fold_expr(&mut self, i: Expr) -> Expr { fold_expr(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400112# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400113fn fold_expr_addr_of(&mut self, i: ExprAddrOf) -> ExprAddrOf { fold_expr_addr_of(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400115fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray { fold_expr_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400116# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400117fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign { fold_expr_assign(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400118# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400119fn fold_expr_assign_op(&mut self, i: ExprAssignOp) -> ExprAssignOp { fold_expr_assign_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400120
Nika Layzella6f46c42017-10-26 15:26:16 -0400121fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary { fold_expr_binary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400122# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400123fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock { fold_expr_block(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400124# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400125fn fold_expr_box(&mut self, i: ExprBox) -> ExprBox { fold_expr_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400126# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400127fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak { fold_expr_break(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400128
Nika Layzella6f46c42017-10-26 15:26:16 -0400129fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall { fold_expr_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400130
Nika Layzella6f46c42017-10-26 15:26:16 -0400131fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast { fold_expr_cast(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400132# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400133fn fold_expr_catch(&mut self, i: ExprCatch) -> ExprCatch { fold_expr_catch(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400134# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400135fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure { fold_expr_closure(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400137fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue { fold_expr_continue(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400138# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400139fn fold_expr_field(&mut self, i: ExprField) -> ExprField { fold_expr_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400140# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400141fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop { fold_expr_for_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400142
Nika Layzella6f46c42017-10-26 15:26:16 -0400143fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup { fold_expr_group(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400144# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400145fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf { fold_expr_if(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400146# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400147fn fold_expr_if_let(&mut self, i: ExprIfLet) -> ExprIfLet { fold_expr_if_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400148# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400149fn fold_expr_in_place(&mut self, i: ExprInPlace) -> ExprInPlace { fold_expr_in_place(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400150
Nika Layzella6f46c42017-10-26 15:26:16 -0400151fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex { fold_expr_index(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400152
Nika Layzella6f46c42017-10-26 15:26:16 -0400153fn fold_expr_kind(&mut self, i: ExprKind) -> ExprKind { fold_expr_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400154# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400155fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop { fold_expr_loop(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400156# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400157fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch { fold_expr_match(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400158# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400159fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall { fold_expr_method_call(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400160
Nika Layzella6f46c42017-10-26 15:26:16 -0400161fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen { fold_expr_paren(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400162
Nika Layzella6f46c42017-10-26 15:26:16 -0400163fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath { fold_expr_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400164# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400165fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange { fold_expr_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400166# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400167fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat { fold_expr_repeat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400168# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400169fn fold_expr_ret(&mut self, i: ExprRet) -> ExprRet { fold_expr_ret(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400171fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct { fold_expr_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400172# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400173fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry { fold_expr_try(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) }
David Tolnay05362582017-12-26 01:33:57 -0500176# [ cfg ( feature = "full" ) ]
177fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple { fold_expr_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400178
Nika Layzella6f46c42017-10-26 15:26:16 -0400179fn fold_expr_type(&mut self, i: ExprType) -> ExprType { fold_expr_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400180
Nika Layzella6f46c42017-10-26 15:26:16 -0400181fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary { fold_expr_unary(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400182# [ cfg ( feature = "full" ) ]
Nika Layzell640832a2017-12-04 13:37:09 -0500183fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe { fold_expr_unsafe(self, i) }
184# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400185fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile { fold_expr_while(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400186# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400187fn fold_expr_while_let(&mut self, i: ExprWhileLet) -> ExprWhileLet { fold_expr_while_let(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400188# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400189fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield { fold_expr_yield(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400190
Nika Layzella6f46c42017-10-26 15:26:16 -0400191fn fold_field(&mut self, i: Field) -> Field { fold_field(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400192# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400193fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat { fold_field_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400194# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400195fn fold_field_value(&mut self, i: FieldValue) -> FieldValue { fold_field_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400197fn fold_file(&mut self, i: File) -> File { fold_file(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400198# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400199fn fold_fn_arg(&mut self, i: FnArg) -> FnArg { fold_fn_arg(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400200# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400201fn fold_fn_decl(&mut self, i: FnDecl) -> FnDecl { fold_fn_decl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400202# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400203fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem { fold_foreign_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400204# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400205fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn { fold_foreign_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400206# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400207fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic { fold_foreign_item_static(self, i) }
David Tolnay199bcbb2017-11-12 10:33:52 -0800208# [ cfg ( feature = "full" ) ]
209fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType { fold_foreign_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400210
Nika Layzellc08227a2017-12-04 16:30:17 -0500211fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument { fold_generic_argument(self, i) }
Nika Layzell357885a2017-12-04 15:47:07 -0500212
David Tolnayc2f1aba2017-11-12 20:29:22 -0800213fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam { fold_generic_param(self, i) }
214
Nika Layzella6f46c42017-10-26 15:26:16 -0400215fn fold_generics(&mut self, i: Generics) -> Generics { fold_generics(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500216
217fn fold_ident(&mut self, i: Ident) -> Ident { fold_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400218# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400219fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem { fold_impl_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400220# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400221fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst { fold_impl_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400222# [ cfg ( feature = "full" ) ]
David Tolnay857628c2017-11-11 12:25:31 -0800223fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro { fold_impl_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400224# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400225fn fold_impl_item_method(&mut self, i: ImplItemMethod) -> ImplItemMethod { fold_impl_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400226# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400227fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType { fold_impl_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400228# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400229fn fold_impl_polarity(&mut self, i: ImplPolarity) -> ImplPolarity { fold_impl_polarity(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400230# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400231fn fold_in_place_kind(&mut self, i: InPlaceKind) -> InPlaceKind { fold_in_place_kind(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400232# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400233fn fold_item(&mut self, i: Item) -> Item { fold_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400234# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400235fn fold_item_const(&mut self, i: ItemConst) -> ItemConst { fold_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400236# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400237fn fold_item_default_impl(&mut self, i: ItemDefaultImpl) -> ItemDefaultImpl { fold_item_default_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400238# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400239fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum { fold_item_enum(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400240# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400241fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate { fold_item_extern_crate(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400242# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400243fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn { fold_item_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400244# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400245fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod { fold_item_foreign_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400246# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400247fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl { fold_item_impl(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400248# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800249fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro { fold_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400250# [ cfg ( feature = "full" ) ]
David Tolnay500d8322017-12-18 00:32:51 -0800251fn fold_item_macro2(&mut self, i: ItemMacro2) -> ItemMacro2 { fold_item_macro2(self, i) }
252# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400253fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod { fold_item_mod(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400254# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400255fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic { fold_item_static(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400256# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400257fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct { fold_item_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400258# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400259fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait { fold_item_trait(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400260# [ cfg ( feature = "full" ) ]
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800261fn fold_item_type(&mut self, i: ItemType) -> ItemType { fold_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400262# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400263fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion { fold_item_union(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400264# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400265fn fold_item_use(&mut self, i: ItemUse) -> ItemUse { fold_item_use(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400266
Nika Layzella6f46c42017-10-26 15:26:16 -0400267fn fold_lifetime_def(&mut self, i: LifetimeDef) -> LifetimeDef { fold_lifetime_def(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400268# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400269fn fold_local(&mut self, i: Local) -> Local { fold_local(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400270# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400271fn fold_mac_stmt_style(&mut self, i: MacStmtStyle) -> MacStmtStyle { fold_mac_stmt_style(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400272
David Tolnaydecf28d2017-11-11 11:56:45 -0800273fn fold_macro(&mut self, i: Macro) -> Macro { fold_macro(self, i) }
274
Nika Layzella6f46c42017-10-26 15:26:16 -0400275fn fold_meta_item(&mut self, i: MetaItem) -> MetaItem { fold_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400276
Nika Layzella6f46c42017-10-26 15:26:16 -0400277fn fold_meta_item_list(&mut self, i: MetaItemList) -> MetaItemList { fold_meta_item_list(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400278
Nika Layzella6f46c42017-10-26 15:26:16 -0400279fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue { fold_meta_name_value(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400280# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400281fn fold_method_sig(&mut self, i: MethodSig) -> MethodSig { fold_method_sig(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400282
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800283fn fold_mut_type(&mut self, i: MutType) -> MutType { fold_mut_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400284
Nika Layzella6f46c42017-10-26 15:26:16 -0400285fn fold_mutability(&mut self, i: Mutability) -> Mutability { fold_mutability(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400286
Nika Layzella6f46c42017-10-26 15:26:16 -0400287fn fold_nested_meta_item(&mut self, i: NestedMetaItem) -> NestedMetaItem { fold_nested_meta_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400288
Nika Layzellc08227a2017-12-04 16:30:17 -0500289fn fold_parenthesized_generic_arguments(&mut self, i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments { fold_parenthesized_generic_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400290# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400291fn fold_pat(&mut self, i: Pat) -> Pat { fold_pat(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400292# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400293fn fold_pat_box(&mut self, i: PatBox) -> PatBox { fold_pat_box(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400294# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400295fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent { fold_pat_ident(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400296# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400297fn fold_pat_lit(&mut self, i: PatLit) -> PatLit { fold_pat_lit(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400298# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400299fn fold_pat_path(&mut self, i: PatPath) -> PatPath { fold_pat_path(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400300# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400301fn fold_pat_range(&mut self, i: PatRange) -> PatRange { fold_pat_range(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400302# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400303fn fold_pat_ref(&mut self, i: PatRef) -> PatRef { fold_pat_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400304# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400305fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice { fold_pat_slice(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400306# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400307fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct { fold_pat_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400308# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400309fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple { fold_pat_tuple(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400310# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400311fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct { fold_pat_tuple_struct(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400312# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400313fn fold_pat_wild(&mut self, i: PatWild) -> PatWild { fold_pat_wild(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400314
Nika Layzella6f46c42017-10-26 15:26:16 -0400315fn fold_path(&mut self, i: Path) -> Path { fold_path(self, i) }
Nika Layzellc08227a2017-12-04 16:30:17 -0500316
317fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments { fold_path_arguments(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400318
Nika Layzella6f46c42017-10-26 15:26:16 -0400319fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment { fold_path_segment(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400320
Nika Layzella6f46c42017-10-26 15:26:16 -0400321fn fold_poly_trait_ref(&mut self, i: PolyTraitRef) -> PolyTraitRef { fold_poly_trait_ref(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400322
Nika Layzella6f46c42017-10-26 15:26:16 -0400323fn fold_qself(&mut self, i: QSelf) -> QSelf { fold_qself(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400324# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400325fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits { fold_range_limits(self, i) }
David Tolnayf93b90d2017-11-11 19:21:26 -0800326
327fn fold_return_type(&mut self, i: ReturnType) -> ReturnType { fold_return_type(self, i) }
Nika Layzellefb83ba2017-12-19 18:23:55 -0500328
329fn fold_span(&mut self, i: Span) -> Span { fold_span(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400330# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400331fn fold_stmt(&mut self, i: Stmt) -> Stmt { fold_stmt(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400332
Nika Layzella6f46c42017-10-26 15:26:16 -0400333fn fold_trait_bound_modifier(&mut self, i: TraitBoundModifier) -> TraitBoundModifier { fold_trait_bound_modifier(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400334# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400335fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem { fold_trait_item(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400336# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400337fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst { fold_trait_item_const(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400338# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -0800339fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro { fold_trait_item_macro(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400340# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400341fn fold_trait_item_method(&mut self, i: TraitItemMethod) -> TraitItemMethod { fold_trait_item_method(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400342# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -0400343fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType { fold_trait_item_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400344
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800345fn fold_type(&mut self, i: Type) -> Type { fold_type(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400346
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800347fn fold_type_array(&mut self, i: TypeArray) -> TypeArray { fold_type_array(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400348
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800349fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn { fold_type_bare_fn(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400350
Nika Layzella6f46c42017-10-26 15:26:16 -0400351fn fold_type_binding(&mut self, i: TypeBinding) -> TypeBinding { fold_type_binding(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400352
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800353fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup { fold_type_group(self, i) }
354
355fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait { fold_type_impl_trait(self, i) }
356
357fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer { fold_type_infer(self, i) }
358
359fn fold_type_never(&mut self, i: TypeNever) -> TypeNever { fold_type_never(self, i) }
360
361fn fold_type_param(&mut self, i: TypeParam) -> TypeParam { fold_type_param(self, i) }
362
363fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound { fold_type_param_bound(self, i) }
364
365fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen { fold_type_paren(self, i) }
366
367fn fold_type_path(&mut self, i: TypePath) -> TypePath { fold_type_path(self, i) }
368
369fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr { fold_type_ptr(self, i) }
370
David Tolnay0a89b4d2017-11-13 00:55:45 -0800371fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference { fold_type_reference(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800372
373fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice { fold_type_slice(self, i) }
374
375fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject { fold_type_trait_object(self, i) }
376
David Tolnay05362582017-12-26 01:33:57 -0500377fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple { fold_type_tuple(self, i) }
David Tolnayfd6bf5c2017-11-12 09:41:14 -0800378
Nika Layzella6f46c42017-10-26 15:26:16 -0400379fn fold_un_op(&mut self, i: UnOp) -> UnOp { fold_un_op(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400380
Nika Layzella6f46c42017-10-26 15:26:16 -0400381fn fold_unsafety(&mut self, i: Unsafety) -> Unsafety { fold_unsafety(self, i) }
David Tolnay5f332a92017-12-26 00:42:45 -0500382# [ cfg ( feature = "full" ) ]
383fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob { fold_use_glob(self, i) }
384# [ cfg ( feature = "full" ) ]
385fn fold_use_list(&mut self, i: UseList) -> UseList { fold_use_list(self, i) }
386# [ cfg ( feature = "full" ) ]
387fn fold_use_path(&mut self, i: UsePath) -> UsePath { fold_use_path(self, i) }
388# [ cfg ( feature = "full" ) ]
389fn fold_use_tree(&mut self, i: UseTree) -> UseTree { fold_use_tree(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400390
Nika Layzella6f46c42017-10-26 15:26:16 -0400391fn fold_variant(&mut self, i: Variant) -> Variant { fold_variant(self, i) }
Nika Layzell27726662017-10-24 23:16:35 -0400392
Nika Layzella6f46c42017-10-26 15:26:16 -0400393fn fold_variant_data(&mut self, i: VariantData) -> VariantData { fold_variant_data(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 }
David Tolnay05362582017-12-26 01:33:57 -05001012 Tuple(_binding_0, ) => {
1013 Tuple (
1014 full!(_visitor.fold_expr_tuple(_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_field<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTupField) -> ExprTupField {
Nika Layzell27726662017-10-24 23:16:35 -04001278 ExprTupField {
1279 expr: Box::new(_visitor.fold_expr(* _i . expr)),
1280 field: _i . field,
1281 dot_token: _i . dot_token,
1282 }
1283}
David Tolnay05362582017-12-26 01:33:57 -05001284# [ cfg ( feature = "full" ) ]
1285pub fn fold_expr_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: ExprTuple) -> ExprTuple {
1286 ExprTuple {
1287 args: FoldHelper::lift(_i . args, |it| { _visitor.fold_expr(it) }),
1288 paren_token: _i . paren_token,
1289 lone_comma: _i . lone_comma,
1290 }
1291}
Nika Layzell27726662017-10-24 23:16:35 -04001292
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,
David Tolnay5f332a92017-12-26 00:42:45 -05001909 leading_colon: _i . leading_colon,
1910 prefix: FoldHelper::lift(_i . prefix, |it| { _visitor.fold_ident(it) }),
1911 tree: _visitor.fold_use_tree(_i . tree),
Nika Layzell27726662017-10-24 23:16:35 -04001912 semi_token: _i . semi_token,
1913 }
1914}
1915
Nika Layzella6f46c42017-10-26 15:26:16 -04001916pub fn fold_lifetime_def<V: Folder + ?Sized>(_visitor: &mut V, _i: LifetimeDef) -> LifetimeDef {
Nika Layzell27726662017-10-24 23:16:35 -04001917 LifetimeDef {
1918 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1919 lifetime: _i . lifetime,
1920 colon_token: _i . colon_token,
1921 bounds: _i . bounds,
1922 }
1923}
1924# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001925pub fn fold_local<V: Folder + ?Sized>(_visitor: &mut V, _i: Local) -> Local {
Nika Layzell27726662017-10-24 23:16:35 -04001926 Local {
1927 let_token: _i . let_token,
1928 colon_token: _i . colon_token,
1929 eq_token: _i . eq_token,
1930 semi_token: _i . semi_token,
1931 pat: Box::new(_visitor.fold_pat(* _i . pat)),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08001932 ty: (_i . ty).map(|it| { Box::new(_visitor.fold_type(* it)) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04001933 init: (_i . init).map(|it| { Box::new(_visitor.fold_expr(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04001934 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
1935 }
1936}
Nika Layzell27726662017-10-24 23:16:35 -04001937# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001938pub fn fold_mac_stmt_style<V: Folder + ?Sized>(_visitor: &mut V, _i: MacStmtStyle) -> MacStmtStyle {
Nika Layzell27726662017-10-24 23:16:35 -04001939 use ::MacStmtStyle::*;
1940 match _i {
1941 Semicolon(_binding_0, ) => {
1942 Semicolon (
1943 _binding_0,
1944 )
1945 }
1946 Braces => { Braces }
1947 NoBraces => { NoBraces }
1948 }
1949}
1950
David Tolnaydecf28d2017-11-11 11:56:45 -08001951pub fn fold_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: Macro) -> Macro {
1952 Macro {
1953 path: _visitor.fold_path(_i . path),
1954 bang_token: _i . bang_token,
David Tolnaydecf28d2017-11-11 11:56:45 -08001955 tokens: _i . tokens,
1956 }
1957}
1958
Nika Layzella6f46c42017-10-26 15:26:16 -04001959pub fn fold_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItem) -> MetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04001960 use ::MetaItem::*;
1961 match _i {
1962 Term(_binding_0, ) => {
1963 Term (
Nika Layzellefb83ba2017-12-19 18:23:55 -05001964 _visitor.fold_ident(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04001965 )
1966 }
1967 List(_binding_0, ) => {
1968 List (
1969 _visitor.fold_meta_item_list(_binding_0),
1970 )
1971 }
1972 NameValue(_binding_0, ) => {
1973 NameValue (
1974 _visitor.fold_meta_name_value(_binding_0),
1975 )
1976 }
1977 }
1978}
1979
Nika Layzella6f46c42017-10-26 15:26:16 -04001980pub fn fold_meta_item_list<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaItemList) -> MetaItemList {
Nika Layzell27726662017-10-24 23:16:35 -04001981 MetaItemList {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001982 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001983 paren_token: _i . paren_token,
1984 nested: FoldHelper::lift(_i . nested, |it| { _visitor.fold_nested_meta_item(it) }),
1985 }
1986}
1987
Nika Layzella6f46c42017-10-26 15:26:16 -04001988pub fn fold_meta_name_value<V: Folder + ?Sized>(_visitor: &mut V, _i: MetaNameValue) -> MetaNameValue {
Nika Layzell27726662017-10-24 23:16:35 -04001989 MetaNameValue {
Nika Layzellefb83ba2017-12-19 18:23:55 -05001990 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04001991 eq_token: _i . eq_token,
1992 lit: _i . lit,
1993 }
1994}
1995# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04001996pub fn fold_method_sig<V: Folder + ?Sized>(_visitor: &mut V, _i: MethodSig) -> MethodSig {
Nika Layzell27726662017-10-24 23:16:35 -04001997 MethodSig {
1998 constness: _visitor.fold_constness(_i . constness),
1999 unsafety: _visitor.fold_unsafety(_i . unsafety),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002000 abi: (_i . abi).map(|it| { _visitor.fold_abi(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002001 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002002 decl: _visitor.fold_fn_decl(_i . decl),
2003 }
2004}
2005
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002006pub fn fold_mut_type<V: Folder + ?Sized>(_visitor: &mut V, _i: MutType) -> MutType {
2007 MutType {
2008 ty: _visitor.fold_type(_i . ty),
Nika Layzell27726662017-10-24 23:16:35 -04002009 mutability: _visitor.fold_mutability(_i . mutability),
2010 }
2011}
2012
Nika Layzella6f46c42017-10-26 15:26:16 -04002013pub fn fold_mutability<V: Folder + ?Sized>(_visitor: &mut V, _i: Mutability) -> Mutability {
Nika Layzell27726662017-10-24 23:16:35 -04002014 use ::Mutability::*;
2015 match _i {
2016 Mutable(_binding_0, ) => {
2017 Mutable (
2018 _binding_0,
2019 )
2020 }
2021 Immutable => { Immutable }
2022 }
2023}
2024
Nika Layzella6f46c42017-10-26 15:26:16 -04002025pub fn fold_nested_meta_item<V: Folder + ?Sized>(_visitor: &mut V, _i: NestedMetaItem) -> NestedMetaItem {
Nika Layzell27726662017-10-24 23:16:35 -04002026 use ::NestedMetaItem::*;
2027 match _i {
2028 MetaItem(_binding_0, ) => {
2029 MetaItem (
2030 _visitor.fold_meta_item(_binding_0),
2031 )
2032 }
2033 Literal(_binding_0, ) => {
2034 Literal (
2035 _binding_0,
2036 )
2037 }
2038 }
2039}
2040
Nika Layzellc08227a2017-12-04 16:30:17 -05002041pub fn fold_parenthesized_generic_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: ParenthesizedGenericArguments) -> ParenthesizedGenericArguments {
2042 ParenthesizedGenericArguments {
Nika Layzell27726662017-10-24 23:16:35 -04002043 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002044 inputs: FoldHelper::lift(_i . inputs, |it| { _visitor.fold_type(it) }),
David Tolnayf93b90d2017-11-11 19:21:26 -08002045 output: _visitor.fold_return_type(_i . output),
Nika Layzell27726662017-10-24 23:16:35 -04002046 }
2047}
2048# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002049pub fn fold_pat<V: Folder + ?Sized>(_visitor: &mut V, _i: Pat) -> Pat {
Nika Layzell27726662017-10-24 23:16:35 -04002050 use ::Pat::*;
2051 match _i {
2052 Wild(_binding_0, ) => {
2053 Wild (
2054 _visitor.fold_pat_wild(_binding_0),
2055 )
2056 }
2057 Ident(_binding_0, ) => {
2058 Ident (
2059 _visitor.fold_pat_ident(_binding_0),
2060 )
2061 }
2062 Struct(_binding_0, ) => {
2063 Struct (
2064 _visitor.fold_pat_struct(_binding_0),
2065 )
2066 }
2067 TupleStruct(_binding_0, ) => {
2068 TupleStruct (
2069 _visitor.fold_pat_tuple_struct(_binding_0),
2070 )
2071 }
2072 Path(_binding_0, ) => {
2073 Path (
2074 _visitor.fold_pat_path(_binding_0),
2075 )
2076 }
2077 Tuple(_binding_0, ) => {
2078 Tuple (
2079 _visitor.fold_pat_tuple(_binding_0),
2080 )
2081 }
2082 Box(_binding_0, ) => {
2083 Box (
2084 _visitor.fold_pat_box(_binding_0),
2085 )
2086 }
2087 Ref(_binding_0, ) => {
2088 Ref (
2089 _visitor.fold_pat_ref(_binding_0),
2090 )
2091 }
2092 Lit(_binding_0, ) => {
2093 Lit (
2094 _visitor.fold_pat_lit(_binding_0),
2095 )
2096 }
2097 Range(_binding_0, ) => {
2098 Range (
2099 _visitor.fold_pat_range(_binding_0),
2100 )
2101 }
2102 Slice(_binding_0, ) => {
2103 Slice (
2104 _visitor.fold_pat_slice(_binding_0),
2105 )
2106 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002107 Macro(_binding_0, ) => {
2108 Macro (
2109 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002110 )
2111 }
2112 }
2113}
2114# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002115pub fn fold_pat_box<V: Folder + ?Sized>(_visitor: &mut V, _i: PatBox) -> PatBox {
Nika Layzell27726662017-10-24 23:16:35 -04002116 PatBox {
2117 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2118 box_token: _i . box_token,
2119 }
2120}
2121# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002122pub fn fold_pat_ident<V: Folder + ?Sized>(_visitor: &mut V, _i: PatIdent) -> PatIdent {
Nika Layzell27726662017-10-24 23:16:35 -04002123 PatIdent {
2124 mode: _visitor.fold_binding_mode(_i . mode),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002125 ident: _visitor.fold_ident(_i . ident),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002126 subpat: (_i . subpat).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002127 at_token: _i . at_token,
2128 }
2129}
2130# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002131pub fn fold_pat_lit<V: Folder + ?Sized>(_visitor: &mut V, _i: PatLit) -> PatLit {
Nika Layzell27726662017-10-24 23:16:35 -04002132 PatLit {
2133 expr: Box::new(_visitor.fold_expr(* _i . expr)),
2134 }
2135}
2136# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002137pub fn fold_pat_path<V: Folder + ?Sized>(_visitor: &mut V, _i: PatPath) -> PatPath {
Nika Layzell27726662017-10-24 23:16:35 -04002138 PatPath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002139 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002140 path: _visitor.fold_path(_i . path),
2141 }
2142}
2143# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002144pub fn fold_pat_range<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRange) -> PatRange {
Nika Layzell27726662017-10-24 23:16:35 -04002145 PatRange {
2146 lo: Box::new(_visitor.fold_expr(* _i . lo)),
2147 hi: Box::new(_visitor.fold_expr(* _i . hi)),
2148 limits: _visitor.fold_range_limits(_i . limits),
2149 }
2150}
2151# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002152pub fn fold_pat_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PatRef) -> PatRef {
Nika Layzell27726662017-10-24 23:16:35 -04002153 PatRef {
2154 pat: Box::new(_visitor.fold_pat(* _i . pat)),
2155 mutbl: _visitor.fold_mutability(_i . mutbl),
2156 and_token: _i . and_token,
2157 }
2158}
2159# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002160pub fn fold_pat_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: PatSlice) -> PatSlice {
Nika Layzell27726662017-10-24 23:16:35 -04002161 PatSlice {
2162 front: FoldHelper::lift(_i . front, |it| { _visitor.fold_pat(it) }),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002163 middle: (_i . middle).map(|it| { Box::new(_visitor.fold_pat(* it)) }),
Nika Layzell27726662017-10-24 23:16:35 -04002164 back: FoldHelper::lift(_i . back, |it| { _visitor.fold_pat(it) }),
2165 dot2_token: _i . dot2_token,
2166 comma_token: _i . comma_token,
2167 bracket_token: _i . bracket_token,
2168 }
2169}
2170# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002171pub fn fold_pat_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatStruct) -> PatStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002172 PatStruct {
2173 path: _visitor.fold_path(_i . path),
2174 fields: FoldHelper::lift(_i . fields, |it| { _visitor.fold_field_pat(it) }),
2175 brace_token: _i . brace_token,
2176 dot2_token: _i . dot2_token,
2177 }
2178}
2179# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002180pub fn fold_pat_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTuple) -> PatTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002181 PatTuple {
2182 pats: FoldHelper::lift(_i . pats, |it| { _visitor.fold_pat(it) }),
2183 dots_pos: _i . dots_pos,
2184 paren_token: _i . paren_token,
2185 dot2_token: _i . dot2_token,
2186 comma_token: _i . comma_token,
2187 }
2188}
2189# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002190pub fn fold_pat_tuple_struct<V: Folder + ?Sized>(_visitor: &mut V, _i: PatTupleStruct) -> PatTupleStruct {
Nika Layzell27726662017-10-24 23:16:35 -04002191 PatTupleStruct {
2192 path: _visitor.fold_path(_i . path),
2193 pat: _visitor.fold_pat_tuple(_i . pat),
2194 }
2195}
2196# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002197pub fn fold_pat_wild<V: Folder + ?Sized>(_visitor: &mut V, _i: PatWild) -> PatWild {
Nika Layzell27726662017-10-24 23:16:35 -04002198 PatWild {
2199 underscore_token: _i . underscore_token,
2200 }
2201}
2202
Nika Layzella6f46c42017-10-26 15:26:16 -04002203pub fn fold_path<V: Folder + ?Sized>(_visitor: &mut V, _i: Path) -> Path {
Nika Layzell27726662017-10-24 23:16:35 -04002204 Path {
2205 leading_colon: _i . leading_colon,
2206 segments: FoldHelper::lift(_i . segments, |it| { _visitor.fold_path_segment(it) }),
2207 }
2208}
Nika Layzellc08227a2017-12-04 16:30:17 -05002209
2210pub fn fold_path_arguments<V: Folder + ?Sized>(_visitor: &mut V, _i: PathArguments) -> PathArguments {
2211 use ::PathArguments::*;
2212 match _i {
2213 None => { None }
2214 AngleBracketed(_binding_0, ) => {
2215 AngleBracketed (
2216 _visitor.fold_angle_bracketed_generic_arguments(_binding_0),
2217 )
2218 }
2219 Parenthesized(_binding_0, ) => {
2220 Parenthesized (
2221 _visitor.fold_parenthesized_generic_arguments(_binding_0),
2222 )
2223 }
2224 }
2225}
Nika Layzell27726662017-10-24 23:16:35 -04002226
Nika Layzella6f46c42017-10-26 15:26:16 -04002227pub fn fold_path_segment<V: Folder + ?Sized>(_visitor: &mut V, _i: PathSegment) -> PathSegment {
Nika Layzell27726662017-10-24 23:16:35 -04002228 PathSegment {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002229 ident: _visitor.fold_ident(_i . ident),
Nika Layzellc08227a2017-12-04 16:30:17 -05002230 arguments: _visitor.fold_path_arguments(_i . arguments),
Nika Layzell27726662017-10-24 23:16:35 -04002231 }
2232}
Nika Layzell27726662017-10-24 23:16:35 -04002233
Nika Layzella6f46c42017-10-26 15:26:16 -04002234pub fn fold_poly_trait_ref<V: Folder + ?Sized>(_visitor: &mut V, _i: PolyTraitRef) -> PolyTraitRef {
Nika Layzell27726662017-10-24 23:16:35 -04002235 PolyTraitRef {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002236 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002237 trait_ref: _visitor.fold_path(_i . trait_ref),
2238 }
2239}
2240
Nika Layzella6f46c42017-10-26 15:26:16 -04002241pub fn fold_qself<V: Folder + ?Sized>(_visitor: &mut V, _i: QSelf) -> QSelf {
Nika Layzell27726662017-10-24 23:16:35 -04002242 QSelf {
2243 lt_token: _i . lt_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002244 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002245 position: _i . position,
2246 as_token: _i . as_token,
2247 gt_token: _i . gt_token,
2248 }
2249}
2250# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002251pub fn fold_range_limits<V: Folder + ?Sized>(_visitor: &mut V, _i: RangeLimits) -> RangeLimits {
Nika Layzell27726662017-10-24 23:16:35 -04002252 use ::RangeLimits::*;
2253 match _i {
2254 HalfOpen(_binding_0, ) => {
2255 HalfOpen (
2256 _binding_0,
2257 )
2258 }
2259 Closed(_binding_0, ) => {
2260 Closed (
2261 _binding_0,
2262 )
2263 }
2264 }
2265}
David Tolnayf93b90d2017-11-11 19:21:26 -08002266
2267pub fn fold_return_type<V: Folder + ?Sized>(_visitor: &mut V, _i: ReturnType) -> ReturnType {
2268 use ::ReturnType::*;
2269 match _i {
2270 Default => { Default }
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002271 Type(_binding_0, _binding_1, ) => {
2272 Type (
2273 _visitor.fold_type(_binding_0),
David Tolnayf93b90d2017-11-11 19:21:26 -08002274 _binding_1,
2275 )
2276 }
2277 }
2278}
Nika Layzellefb83ba2017-12-19 18:23:55 -05002279
2280pub fn fold_span<V: Folder + ?Sized>(_visitor: &mut V, _i: Span) -> Span {
2281 _i
2282}
Nika Layzell27726662017-10-24 23:16:35 -04002283# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002284pub fn fold_stmt<V: Folder + ?Sized>(_visitor: &mut V, _i: Stmt) -> Stmt {
Nika Layzell27726662017-10-24 23:16:35 -04002285 use ::Stmt::*;
2286 match _i {
2287 Local(_binding_0, ) => {
2288 Local (
2289 Box::new(_visitor.fold_local(* _binding_0)),
2290 )
2291 }
2292 Item(_binding_0, ) => {
2293 Item (
2294 Box::new(_visitor.fold_item(* _binding_0)),
2295 )
2296 }
2297 Expr(_binding_0, ) => {
2298 Expr (
2299 Box::new(_visitor.fold_expr(* _binding_0)),
2300 )
2301 }
2302 Semi(_binding_0, _binding_1, ) => {
2303 Semi (
2304 Box::new(_visitor.fold_expr(* _binding_0)),
2305 _binding_1,
2306 )
2307 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002308 Macro(_binding_0, ) => {
2309 Macro (
Nika Layzell27726662017-10-24 23:16:35 -04002310 _binding_0,
2311 )
2312 }
2313 }
2314}
2315
Nika Layzella6f46c42017-10-26 15:26:16 -04002316pub fn fold_trait_bound_modifier<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitBoundModifier) -> TraitBoundModifier {
Nika Layzell27726662017-10-24 23:16:35 -04002317 use ::TraitBoundModifier::*;
2318 match _i {
2319 None => { None }
2320 Maybe(_binding_0, ) => {
2321 Maybe (
2322 _binding_0,
2323 )
2324 }
2325 }
2326}
2327# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002328pub fn fold_trait_item<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItem) -> TraitItem {
David Tolnayda705bd2017-11-10 21:58:05 -08002329 use ::TraitItem::*;
Nika Layzell27726662017-10-24 23:16:35 -04002330 match _i {
2331 Const(_binding_0, ) => {
2332 Const (
2333 _visitor.fold_trait_item_const(_binding_0),
2334 )
2335 }
2336 Method(_binding_0, ) => {
2337 Method (
2338 _visitor.fold_trait_item_method(_binding_0),
2339 )
2340 }
2341 Type(_binding_0, ) => {
2342 Type (
2343 _visitor.fold_trait_item_type(_binding_0),
2344 )
2345 }
2346 Macro(_binding_0, ) => {
2347 Macro (
David Tolnaydecf28d2017-11-11 11:56:45 -08002348 _visitor.fold_trait_item_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002349 )
2350 }
2351 }
2352}
2353# [ cfg ( feature = "full" ) ]
David Tolnayda705bd2017-11-10 21:58:05 -08002354pub fn fold_trait_item_const<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemConst) -> TraitItemConst {
2355 TraitItemConst {
2356 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2357 const_token: _i . const_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002358 ident: _visitor.fold_ident(_i . ident),
David Tolnayda705bd2017-11-10 21:58:05 -08002359 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002360 ty: _visitor.fold_type(_i . ty),
David Tolnayda705bd2017-11-10 21:58:05 -08002361 default: _i . default,
2362 semi_token: _i . semi_token,
2363 }
2364}
2365# [ cfg ( feature = "full" ) ]
David Tolnaydecf28d2017-11-11 11:56:45 -08002366pub fn fold_trait_item_macro<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMacro) -> TraitItemMacro {
2367 TraitItemMacro {
David Tolnayda705bd2017-11-10 21:58:05 -08002368 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
David Tolnaydecf28d2017-11-11 11:56:45 -08002369 mac: _visitor.fold_macro(_i . mac),
David Tolnayda705bd2017-11-10 21:58:05 -08002370 }
2371}
2372# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002373pub fn fold_trait_item_method<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemMethod) -> TraitItemMethod {
Nika Layzell27726662017-10-24 23:16:35 -04002374 TraitItemMethod {
David Tolnayda705bd2017-11-10 21:58:05 -08002375 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002376 sig: _visitor.fold_method_sig(_i . sig),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002377 default: (_i . default).map(|it| { _visitor.fold_block(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002378 semi_token: _i . semi_token,
2379 }
2380}
2381# [ cfg ( feature = "full" ) ]
Nika Layzella6f46c42017-10-26 15:26:16 -04002382pub fn fold_trait_item_type<V: Folder + ?Sized>(_visitor: &mut V, _i: TraitItemType) -> TraitItemType {
Nika Layzell27726662017-10-24 23:16:35 -04002383 TraitItemType {
David Tolnayda705bd2017-11-10 21:58:05 -08002384 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002385 type_token: _i . type_token,
Nika Layzellefb83ba2017-12-19 18:23:55 -05002386 ident: _visitor.fold_ident(_i . ident),
Nika Layzell591528a2017-12-05 12:47:37 -05002387 generics: _visitor.fold_generics(_i . generics),
Nika Layzell27726662017-10-24 23:16:35 -04002388 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002389 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002390 default: _i . default,
2391 semi_token: _i . semi_token,
2392 }
2393}
2394
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002395pub fn fold_type<V: Folder + ?Sized>(_visitor: &mut V, _i: Type) -> Type {
2396 use ::Type::*;
Nika Layzell27726662017-10-24 23:16:35 -04002397 match _i {
2398 Slice(_binding_0, ) => {
2399 Slice (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002400 _visitor.fold_type_slice(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002401 )
2402 }
2403 Array(_binding_0, ) => {
2404 Array (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002405 _visitor.fold_type_array(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002406 )
2407 }
2408 Ptr(_binding_0, ) => {
2409 Ptr (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002410 _visitor.fold_type_ptr(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002411 )
2412 }
David Tolnay0a89b4d2017-11-13 00:55:45 -08002413 Reference(_binding_0, ) => {
2414 Reference (
2415 _visitor.fold_type_reference(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002416 )
2417 }
2418 BareFn(_binding_0, ) => {
2419 BareFn (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002420 _visitor.fold_type_bare_fn(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002421 )
2422 }
2423 Never(_binding_0, ) => {
2424 Never (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002425 _visitor.fold_type_never(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002426 )
2427 }
David Tolnay05362582017-12-26 01:33:57 -05002428 Tuple(_binding_0, ) => {
2429 Tuple (
2430 _visitor.fold_type_tuple(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002431 )
2432 }
2433 Path(_binding_0, ) => {
2434 Path (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002435 _visitor.fold_type_path(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002436 )
2437 }
2438 TraitObject(_binding_0, ) => {
2439 TraitObject (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002440 _visitor.fold_type_trait_object(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002441 )
2442 }
2443 ImplTrait(_binding_0, ) => {
2444 ImplTrait (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002445 _visitor.fold_type_impl_trait(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002446 )
2447 }
2448 Paren(_binding_0, ) => {
2449 Paren (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002450 _visitor.fold_type_paren(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002451 )
2452 }
2453 Group(_binding_0, ) => {
2454 Group (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002455 _visitor.fold_type_group(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002456 )
2457 }
2458 Infer(_binding_0, ) => {
2459 Infer (
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002460 _visitor.fold_type_infer(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002461 )
2462 }
David Tolnaydecf28d2017-11-11 11:56:45 -08002463 Macro(_binding_0, ) => {
2464 Macro (
2465 _visitor.fold_macro(_binding_0),
Nika Layzell27726662017-10-24 23:16:35 -04002466 )
2467 }
2468 }
2469}
2470
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002471pub fn fold_type_array<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeArray) -> TypeArray {
2472 TypeArray {
Nika Layzell27726662017-10-24 23:16:35 -04002473 bracket_token: _i . bracket_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002474 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002475 semi_token: _i . semi_token,
2476 amt: _visitor.fold_expr(_i . amt),
2477 }
2478}
2479
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002480pub fn fold_type_bare_fn<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBareFn) -> TypeBareFn {
2481 TypeBareFn {
2482 ty: Box::new(_visitor.fold_bare_fn_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002483 }
2484}
2485
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002486pub fn fold_type_binding<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeBinding) -> TypeBinding {
2487 TypeBinding {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002488 ident: _visitor.fold_ident(_i . ident),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002489 eq_token: _i . eq_token,
2490 ty: _visitor.fold_type(_i . ty),
2491 }
2492}
2493
2494pub fn fold_type_group<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeGroup) -> TypeGroup {
2495 TypeGroup {
Nika Layzell27726662017-10-24 23:16:35 -04002496 group_token: _i . group_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002497 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002498 }
2499}
2500
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002501pub fn fold_type_impl_trait<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeImplTrait) -> TypeImplTrait {
2502 TypeImplTrait {
Nika Layzell27726662017-10-24 23:16:35 -04002503 impl_token: _i . impl_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002504 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002505 }
2506}
2507
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002508pub fn fold_type_infer<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeInfer) -> TypeInfer {
2509 TypeInfer {
Nika Layzell27726662017-10-24 23:16:35 -04002510 underscore_token: _i . underscore_token,
2511 }
2512}
2513
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002514pub fn fold_type_never<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeNever) -> TypeNever {
2515 TypeNever {
Nika Layzell27726662017-10-24 23:16:35 -04002516 bang_token: _i . bang_token,
2517 }
2518}
2519
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002520pub fn fold_type_param<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParam) -> TypeParam {
2521 TypeParam {
Nika Layzell27726662017-10-24 23:16:35 -04002522 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
Nika Layzellefb83ba2017-12-19 18:23:55 -05002523 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002524 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002525 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002526 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002527 default: (_i . default).map(|it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002528 }
2529}
2530
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002531pub fn fold_type_param_bound<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParamBound) -> TypeParamBound {
2532 use ::TypeParamBound::*;
Nika Layzell27726662017-10-24 23:16:35 -04002533 match _i {
2534 Trait(_binding_0, _binding_1, ) => {
2535 Trait (
2536 _visitor.fold_poly_trait_ref(_binding_0),
2537 _visitor.fold_trait_bound_modifier(_binding_1),
2538 )
2539 }
2540 Region(_binding_0, ) => {
2541 Region (
2542 _binding_0,
2543 )
2544 }
2545 }
2546}
2547
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002548pub fn fold_type_paren<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeParen) -> TypeParen {
2549 TypeParen {
Nika Layzell27726662017-10-24 23:16:35 -04002550 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002551 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002552 }
2553}
2554
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002555pub fn fold_type_path<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePath) -> TypePath {
2556 TypePath {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002557 qself: (_i . qself).map(|it| { _visitor.fold_qself(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002558 path: _visitor.fold_path(_i . path),
2559 }
2560}
2561
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002562pub fn fold_type_ptr<V: Folder + ?Sized>(_visitor: &mut V, _i: TypePtr) -> TypePtr {
2563 TypePtr {
Nika Layzell27726662017-10-24 23:16:35 -04002564 star_token: _i . star_token,
2565 const_token: _i . const_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002566 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002567 }
2568}
2569
David Tolnay0a89b4d2017-11-13 00:55:45 -08002570pub fn fold_type_reference<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeReference) -> TypeReference {
2571 TypeReference {
Nika Layzell27726662017-10-24 23:16:35 -04002572 and_token: _i . and_token,
2573 lifetime: _i . lifetime,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002574 ty: Box::new(_visitor.fold_mut_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002575 }
2576}
2577
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002578pub fn fold_type_slice<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeSlice) -> TypeSlice {
2579 TypeSlice {
2580 ty: Box::new(_visitor.fold_type(* _i . ty)),
Nika Layzell27726662017-10-24 23:16:35 -04002581 bracket_token: _i . bracket_token,
2582 }
2583}
2584
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002585pub fn fold_type_trait_object<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTraitObject) -> TypeTraitObject {
2586 TypeTraitObject {
David Tolnaye45b59f2017-12-25 18:44:49 -05002587 dyn_token: _i . dyn_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002588 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002589 }
2590}
2591
David Tolnay05362582017-12-26 01:33:57 -05002592pub fn fold_type_tuple<V: Folder + ?Sized>(_visitor: &mut V, _i: TypeTuple) -> TypeTuple {
2593 TypeTuple {
Nika Layzell27726662017-10-24 23:16:35 -04002594 paren_token: _i . paren_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002595 tys: FoldHelper::lift(_i . tys, |it| { _visitor.fold_type(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002596 lone_comma: _i . lone_comma,
2597 }
2598}
2599
Nika Layzella6f46c42017-10-26 15:26:16 -04002600pub fn fold_un_op<V: Folder + ?Sized>(_visitor: &mut V, _i: UnOp) -> UnOp {
Nika Layzell27726662017-10-24 23:16:35 -04002601 use ::UnOp::*;
2602 match _i {
2603 Deref(_binding_0, ) => {
2604 Deref (
2605 _binding_0,
2606 )
2607 }
2608 Not(_binding_0, ) => {
2609 Not (
2610 _binding_0,
2611 )
2612 }
2613 Neg(_binding_0, ) => {
2614 Neg (
2615 _binding_0,
2616 )
2617 }
2618 }
2619}
2620
Nika Layzella6f46c42017-10-26 15:26:16 -04002621pub fn fold_unsafety<V: Folder + ?Sized>(_visitor: &mut V, _i: Unsafety) -> Unsafety {
Nika Layzell27726662017-10-24 23:16:35 -04002622 use ::Unsafety::*;
2623 match _i {
2624 Unsafe(_binding_0, ) => {
2625 Unsafe (
2626 _binding_0,
2627 )
2628 }
2629 Normal => { Normal }
2630 }
2631}
David Tolnay5f332a92017-12-26 00:42:45 -05002632# [ cfg ( feature = "full" ) ]
2633pub fn fold_use_glob<V: Folder + ?Sized>(_visitor: &mut V, _i: UseGlob) -> UseGlob {
2634 UseGlob {
2635 star_token: _i . star_token,
2636 }
2637}
2638# [ cfg ( feature = "full" ) ]
2639pub fn fold_use_list<V: Folder + ?Sized>(_visitor: &mut V, _i: UseList) -> UseList {
2640 UseList {
2641 brace_token: _i . brace_token,
2642 items: FoldHelper::lift(_i . items, |it| { _visitor.fold_use_tree(it) }),
2643 }
2644}
2645# [ cfg ( feature = "full" ) ]
2646pub fn fold_use_path<V: Folder + ?Sized>(_visitor: &mut V, _i: UsePath) -> UsePath {
2647 UsePath {
2648 ident: _visitor.fold_ident(_i . ident),
2649 rename: _i . rename,
2650 }
2651}
2652# [ cfg ( feature = "full" ) ]
2653pub fn fold_use_tree<V: Folder + ?Sized>(_visitor: &mut V, _i: UseTree) -> UseTree {
2654 use ::UseTree::*;
2655 match _i {
2656 Path(_binding_0, ) => {
2657 Path (
2658 _visitor.fold_use_path(_binding_0),
2659 )
2660 }
2661 Glob(_binding_0, ) => {
2662 Glob (
2663 _visitor.fold_use_glob(_binding_0),
2664 )
2665 }
2666 List(_binding_0, ) => {
2667 List (
2668 _visitor.fold_use_list(_binding_0),
2669 )
2670 }
2671 }
2672}
Nika Layzell27726662017-10-24 23:16:35 -04002673
Nika Layzella6f46c42017-10-26 15:26:16 -04002674pub fn fold_variant<V: Folder + ?Sized>(_visitor: &mut V, _i: Variant) -> Variant {
Nika Layzell27726662017-10-24 23:16:35 -04002675 Variant {
Nika Layzellefb83ba2017-12-19 18:23:55 -05002676 ident: _visitor.fold_ident(_i . ident),
Nika Layzell27726662017-10-24 23:16:35 -04002677 attrs: FoldHelper::lift(_i . attrs, |it| { _visitor.fold_attribute(it) }),
2678 data: _visitor.fold_variant_data(_i . data),
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002679 discriminant: (_i . discriminant).map(|it| { _visitor.fold_expr(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002680 eq_token: _i . eq_token,
2681 }
2682}
2683
Nika Layzella6f46c42017-10-26 15:26:16 -04002684pub fn fold_variant_data<V: Folder + ?Sized>(_visitor: &mut V, _i: VariantData) -> VariantData {
Nika Layzell27726662017-10-24 23:16:35 -04002685 use ::VariantData::*;
2686 match _i {
2687 Struct(_binding_0, _binding_1, ) => {
2688 Struct (
2689 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2690 _binding_1,
2691 )
2692 }
2693 Tuple(_binding_0, _binding_1, ) => {
2694 Tuple (
2695 FoldHelper::lift(_binding_0, |it| { _visitor.fold_field(it) }),
2696 _binding_1,
2697 )
2698 }
2699 Unit => { Unit }
2700 }
2701}
Nika Layzell27726662017-10-24 23:16:35 -04002702
Nika Layzella6f46c42017-10-26 15:26:16 -04002703pub fn fold_vis_crate<V: Folder + ?Sized>(_visitor: &mut V, _i: VisCrate) -> VisCrate {
Nika Layzell27726662017-10-24 23:16:35 -04002704 VisCrate {
2705 pub_token: _i . pub_token,
2706 paren_token: _i . paren_token,
2707 crate_token: _i . crate_token,
2708 }
2709}
2710
Nika Layzella6f46c42017-10-26 15:26:16 -04002711pub fn fold_vis_inherited<V: Folder + ?Sized>(_visitor: &mut V, _i: VisInherited) -> VisInherited {
Nika Layzell27726662017-10-24 23:16:35 -04002712 VisInherited {
2713 }
2714}
2715
Nika Layzella6f46c42017-10-26 15:26:16 -04002716pub fn fold_vis_public<V: Folder + ?Sized>(_visitor: &mut V, _i: VisPublic) -> VisPublic {
Nika Layzell27726662017-10-24 23:16:35 -04002717 VisPublic {
2718 pub_token: _i . pub_token,
2719 }
2720}
2721
Nika Layzella6f46c42017-10-26 15:26:16 -04002722pub fn fold_vis_restricted<V: Folder + ?Sized>(_visitor: &mut V, _i: VisRestricted) -> VisRestricted {
Nika Layzell27726662017-10-24 23:16:35 -04002723 VisRestricted {
2724 pub_token: _i . pub_token,
2725 paren_token: _i . paren_token,
2726 in_token: _i . in_token,
2727 path: Box::new(_visitor.fold_path(* _i . path)),
2728 }
2729}
2730
Nika Layzella6f46c42017-10-26 15:26:16 -04002731pub fn fold_visibility<V: Folder + ?Sized>(_visitor: &mut V, _i: Visibility) -> Visibility {
Nika Layzell27726662017-10-24 23:16:35 -04002732 use ::Visibility::*;
2733 match _i {
2734 Public(_binding_0, ) => {
2735 Public (
2736 _visitor.fold_vis_public(_binding_0),
2737 )
2738 }
2739 Crate(_binding_0, ) => {
2740 Crate (
2741 _visitor.fold_vis_crate(_binding_0),
2742 )
2743 }
2744 Restricted(_binding_0, ) => {
2745 Restricted (
2746 _visitor.fold_vis_restricted(_binding_0),
2747 )
2748 }
2749 Inherited(_binding_0, ) => {
2750 Inherited (
2751 _visitor.fold_vis_inherited(_binding_0),
2752 )
2753 }
2754 }
2755}
2756
Nika Layzella6f46c42017-10-26 15:26:16 -04002757pub fn fold_where_bound_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereBoundPredicate) -> WhereBoundPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002758 WhereBoundPredicate {
Nika Layzell4ab8d6e2017-10-26 09:45:49 -04002759 bound_lifetimes: (_i . bound_lifetimes).map(|it| { _visitor.fold_bound_lifetimes(it) }),
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002760 bounded_ty: _visitor.fold_type(_i . bounded_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002761 colon_token: _i . colon_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002762 bounds: FoldHelper::lift(_i . bounds, |it| { _visitor.fold_type_param_bound(it) }),
Nika Layzell27726662017-10-24 23:16:35 -04002763 }
2764}
2765
Nika Layzella6f46c42017-10-26 15:26:16 -04002766pub fn fold_where_clause<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereClause) -> WhereClause {
Nika Layzell27726662017-10-24 23:16:35 -04002767 WhereClause {
2768 where_token: _i . where_token,
2769 predicates: FoldHelper::lift(_i . predicates, |it| { _visitor.fold_where_predicate(it) }),
2770 }
2771}
2772
Nika Layzella6f46c42017-10-26 15:26:16 -04002773pub fn fold_where_eq_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereEqPredicate) -> WhereEqPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002774 WhereEqPredicate {
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002775 lhs_ty: _visitor.fold_type(_i . lhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002776 eq_token: _i . eq_token,
David Tolnayfd6bf5c2017-11-12 09:41:14 -08002777 rhs_ty: _visitor.fold_type(_i . rhs_ty),
Nika Layzell27726662017-10-24 23:16:35 -04002778 }
2779}
2780
Nika Layzella6f46c42017-10-26 15:26:16 -04002781pub fn fold_where_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WherePredicate) -> WherePredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002782 use ::WherePredicate::*;
2783 match _i {
2784 BoundPredicate(_binding_0, ) => {
2785 BoundPredicate (
2786 _visitor.fold_where_bound_predicate(_binding_0),
2787 )
2788 }
2789 RegionPredicate(_binding_0, ) => {
2790 RegionPredicate (
2791 _visitor.fold_where_region_predicate(_binding_0),
2792 )
2793 }
2794 EqPredicate(_binding_0, ) => {
2795 EqPredicate (
2796 _visitor.fold_where_eq_predicate(_binding_0),
2797 )
2798 }
2799 }
2800}
2801
Nika Layzella6f46c42017-10-26 15:26:16 -04002802pub fn fold_where_region_predicate<V: Folder + ?Sized>(_visitor: &mut V, _i: WhereRegionPredicate) -> WhereRegionPredicate {
Nika Layzell27726662017-10-24 23:16:35 -04002803 WhereRegionPredicate {
2804 lifetime: _i . lifetime,
2805 colon_token: _i . colon_token,
2806 bounds: _i . bounds,
2807 }
2808}
2809