1fad3a1d3Sopenharmony_ci// This file is @generated by syn-internal-codegen.
2fad3a1d3Sopenharmony_ci// It is not intended for manual editing.
3fad3a1d3Sopenharmony_ci
4fad3a1d3Sopenharmony_ci#![allow(unreachable_code, unused_variables)]
5fad3a1d3Sopenharmony_ci#![allow(
6fad3a1d3Sopenharmony_ci    clippy::match_wildcard_for_single_variants,
7fad3a1d3Sopenharmony_ci    clippy::needless_match,
8fad3a1d3Sopenharmony_ci    clippy::needless_pass_by_ref_mut,
9fad3a1d3Sopenharmony_ci)]
10fad3a1d3Sopenharmony_ci#[cfg(any(feature = "full", feature = "derive"))]
11fad3a1d3Sopenharmony_ciuse crate::gen::helper::fold::*;
12fad3a1d3Sopenharmony_ciuse crate::*;
13fad3a1d3Sopenharmony_ciuse proc_macro2::Span;
14fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
15fad3a1d3Sopenharmony_cimacro_rules! full {
16fad3a1d3Sopenharmony_ci    ($e:expr) => {
17fad3a1d3Sopenharmony_ci        $e
18fad3a1d3Sopenharmony_ci    };
19fad3a1d3Sopenharmony_ci}
20fad3a1d3Sopenharmony_ci#[cfg(all(feature = "derive", not(feature = "full")))]
21fad3a1d3Sopenharmony_cimacro_rules! full {
22fad3a1d3Sopenharmony_ci    ($e:expr) => {
23fad3a1d3Sopenharmony_ci        unreachable!()
24fad3a1d3Sopenharmony_ci    };
25fad3a1d3Sopenharmony_ci}
26fad3a1d3Sopenharmony_ci/// Syntax tree traversal to transform the nodes of an owned syntax tree.
27fad3a1d3Sopenharmony_ci///
28fad3a1d3Sopenharmony_ci/// See the [module documentation] for details.
29fad3a1d3Sopenharmony_ci///
30fad3a1d3Sopenharmony_ci/// [module documentation]: self
31fad3a1d3Sopenharmony_cipub trait Fold {
32fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
33fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
34fad3a1d3Sopenharmony_ci    fn fold_abi(&mut self, i: Abi) -> Abi {
35fad3a1d3Sopenharmony_ci        fold_abi(self, i)
36fad3a1d3Sopenharmony_ci    }
37fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
38fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
39fad3a1d3Sopenharmony_ci    fn fold_angle_bracketed_generic_arguments(
40fad3a1d3Sopenharmony_ci        &mut self,
41fad3a1d3Sopenharmony_ci        i: AngleBracketedGenericArguments,
42fad3a1d3Sopenharmony_ci    ) -> AngleBracketedGenericArguments {
43fad3a1d3Sopenharmony_ci        fold_angle_bracketed_generic_arguments(self, i)
44fad3a1d3Sopenharmony_ci    }
45fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
46fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
47fad3a1d3Sopenharmony_ci    fn fold_arm(&mut self, i: Arm) -> Arm {
48fad3a1d3Sopenharmony_ci        fold_arm(self, i)
49fad3a1d3Sopenharmony_ci    }
50fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
51fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
52fad3a1d3Sopenharmony_ci    fn fold_assoc_const(&mut self, i: AssocConst) -> AssocConst {
53fad3a1d3Sopenharmony_ci        fold_assoc_const(self, i)
54fad3a1d3Sopenharmony_ci    }
55fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
56fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
57fad3a1d3Sopenharmony_ci    fn fold_assoc_type(&mut self, i: AssocType) -> AssocType {
58fad3a1d3Sopenharmony_ci        fold_assoc_type(self, i)
59fad3a1d3Sopenharmony_ci    }
60fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
61fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
62fad3a1d3Sopenharmony_ci    fn fold_attr_style(&mut self, i: AttrStyle) -> AttrStyle {
63fad3a1d3Sopenharmony_ci        fold_attr_style(self, i)
64fad3a1d3Sopenharmony_ci    }
65fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
66fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
67fad3a1d3Sopenharmony_ci    fn fold_attribute(&mut self, i: Attribute) -> Attribute {
68fad3a1d3Sopenharmony_ci        fold_attribute(self, i)
69fad3a1d3Sopenharmony_ci    }
70fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
71fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
72fad3a1d3Sopenharmony_ci    fn fold_bare_fn_arg(&mut self, i: BareFnArg) -> BareFnArg {
73fad3a1d3Sopenharmony_ci        fold_bare_fn_arg(self, i)
74fad3a1d3Sopenharmony_ci    }
75fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
76fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
77fad3a1d3Sopenharmony_ci    fn fold_bare_variadic(&mut self, i: BareVariadic) -> BareVariadic {
78fad3a1d3Sopenharmony_ci        fold_bare_variadic(self, i)
79fad3a1d3Sopenharmony_ci    }
80fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
81fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
82fad3a1d3Sopenharmony_ci    fn fold_bin_op(&mut self, i: BinOp) -> BinOp {
83fad3a1d3Sopenharmony_ci        fold_bin_op(self, i)
84fad3a1d3Sopenharmony_ci    }
85fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
86fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
87fad3a1d3Sopenharmony_ci    fn fold_block(&mut self, i: Block) -> Block {
88fad3a1d3Sopenharmony_ci        fold_block(self, i)
89fad3a1d3Sopenharmony_ci    }
90fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
91fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
92fad3a1d3Sopenharmony_ci    fn fold_bound_lifetimes(&mut self, i: BoundLifetimes) -> BoundLifetimes {
93fad3a1d3Sopenharmony_ci        fold_bound_lifetimes(self, i)
94fad3a1d3Sopenharmony_ci    }
95fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
96fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
97fad3a1d3Sopenharmony_ci    fn fold_const_param(&mut self, i: ConstParam) -> ConstParam {
98fad3a1d3Sopenharmony_ci        fold_const_param(self, i)
99fad3a1d3Sopenharmony_ci    }
100fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
101fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
102fad3a1d3Sopenharmony_ci    fn fold_constraint(&mut self, i: Constraint) -> Constraint {
103fad3a1d3Sopenharmony_ci        fold_constraint(self, i)
104fad3a1d3Sopenharmony_ci    }
105fad3a1d3Sopenharmony_ci    #[cfg(feature = "derive")]
106fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
107fad3a1d3Sopenharmony_ci    fn fold_data(&mut self, i: Data) -> Data {
108fad3a1d3Sopenharmony_ci        fold_data(self, i)
109fad3a1d3Sopenharmony_ci    }
110fad3a1d3Sopenharmony_ci    #[cfg(feature = "derive")]
111fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
112fad3a1d3Sopenharmony_ci    fn fold_data_enum(&mut self, i: DataEnum) -> DataEnum {
113fad3a1d3Sopenharmony_ci        fold_data_enum(self, i)
114fad3a1d3Sopenharmony_ci    }
115fad3a1d3Sopenharmony_ci    #[cfg(feature = "derive")]
116fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
117fad3a1d3Sopenharmony_ci    fn fold_data_struct(&mut self, i: DataStruct) -> DataStruct {
118fad3a1d3Sopenharmony_ci        fold_data_struct(self, i)
119fad3a1d3Sopenharmony_ci    }
120fad3a1d3Sopenharmony_ci    #[cfg(feature = "derive")]
121fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
122fad3a1d3Sopenharmony_ci    fn fold_data_union(&mut self, i: DataUnion) -> DataUnion {
123fad3a1d3Sopenharmony_ci        fold_data_union(self, i)
124fad3a1d3Sopenharmony_ci    }
125fad3a1d3Sopenharmony_ci    #[cfg(feature = "derive")]
126fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
127fad3a1d3Sopenharmony_ci    fn fold_derive_input(&mut self, i: DeriveInput) -> DeriveInput {
128fad3a1d3Sopenharmony_ci        fold_derive_input(self, i)
129fad3a1d3Sopenharmony_ci    }
130fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
131fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
132fad3a1d3Sopenharmony_ci    fn fold_expr(&mut self, i: Expr) -> Expr {
133fad3a1d3Sopenharmony_ci        fold_expr(self, i)
134fad3a1d3Sopenharmony_ci    }
135fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
136fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
137fad3a1d3Sopenharmony_ci    fn fold_expr_array(&mut self, i: ExprArray) -> ExprArray {
138fad3a1d3Sopenharmony_ci        fold_expr_array(self, i)
139fad3a1d3Sopenharmony_ci    }
140fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
141fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
142fad3a1d3Sopenharmony_ci    fn fold_expr_assign(&mut self, i: ExprAssign) -> ExprAssign {
143fad3a1d3Sopenharmony_ci        fold_expr_assign(self, i)
144fad3a1d3Sopenharmony_ci    }
145fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
146fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
147fad3a1d3Sopenharmony_ci    fn fold_expr_async(&mut self, i: ExprAsync) -> ExprAsync {
148fad3a1d3Sopenharmony_ci        fold_expr_async(self, i)
149fad3a1d3Sopenharmony_ci    }
150fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
151fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
152fad3a1d3Sopenharmony_ci    fn fold_expr_await(&mut self, i: ExprAwait) -> ExprAwait {
153fad3a1d3Sopenharmony_ci        fold_expr_await(self, i)
154fad3a1d3Sopenharmony_ci    }
155fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
156fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
157fad3a1d3Sopenharmony_ci    fn fold_expr_binary(&mut self, i: ExprBinary) -> ExprBinary {
158fad3a1d3Sopenharmony_ci        fold_expr_binary(self, i)
159fad3a1d3Sopenharmony_ci    }
160fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
161fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
162fad3a1d3Sopenharmony_ci    fn fold_expr_block(&mut self, i: ExprBlock) -> ExprBlock {
163fad3a1d3Sopenharmony_ci        fold_expr_block(self, i)
164fad3a1d3Sopenharmony_ci    }
165fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
166fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
167fad3a1d3Sopenharmony_ci    fn fold_expr_break(&mut self, i: ExprBreak) -> ExprBreak {
168fad3a1d3Sopenharmony_ci        fold_expr_break(self, i)
169fad3a1d3Sopenharmony_ci    }
170fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
171fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
172fad3a1d3Sopenharmony_ci    fn fold_expr_call(&mut self, i: ExprCall) -> ExprCall {
173fad3a1d3Sopenharmony_ci        fold_expr_call(self, i)
174fad3a1d3Sopenharmony_ci    }
175fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
176fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
177fad3a1d3Sopenharmony_ci    fn fold_expr_cast(&mut self, i: ExprCast) -> ExprCast {
178fad3a1d3Sopenharmony_ci        fold_expr_cast(self, i)
179fad3a1d3Sopenharmony_ci    }
180fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
181fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
182fad3a1d3Sopenharmony_ci    fn fold_expr_closure(&mut self, i: ExprClosure) -> ExprClosure {
183fad3a1d3Sopenharmony_ci        fold_expr_closure(self, i)
184fad3a1d3Sopenharmony_ci    }
185fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
186fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
187fad3a1d3Sopenharmony_ci    fn fold_expr_const(&mut self, i: ExprConst) -> ExprConst {
188fad3a1d3Sopenharmony_ci        fold_expr_const(self, i)
189fad3a1d3Sopenharmony_ci    }
190fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
191fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
192fad3a1d3Sopenharmony_ci    fn fold_expr_continue(&mut self, i: ExprContinue) -> ExprContinue {
193fad3a1d3Sopenharmony_ci        fold_expr_continue(self, i)
194fad3a1d3Sopenharmony_ci    }
195fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
196fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
197fad3a1d3Sopenharmony_ci    fn fold_expr_field(&mut self, i: ExprField) -> ExprField {
198fad3a1d3Sopenharmony_ci        fold_expr_field(self, i)
199fad3a1d3Sopenharmony_ci    }
200fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
201fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
202fad3a1d3Sopenharmony_ci    fn fold_expr_for_loop(&mut self, i: ExprForLoop) -> ExprForLoop {
203fad3a1d3Sopenharmony_ci        fold_expr_for_loop(self, i)
204fad3a1d3Sopenharmony_ci    }
205fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
206fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
207fad3a1d3Sopenharmony_ci    fn fold_expr_group(&mut self, i: ExprGroup) -> ExprGroup {
208fad3a1d3Sopenharmony_ci        fold_expr_group(self, i)
209fad3a1d3Sopenharmony_ci    }
210fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
211fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
212fad3a1d3Sopenharmony_ci    fn fold_expr_if(&mut self, i: ExprIf) -> ExprIf {
213fad3a1d3Sopenharmony_ci        fold_expr_if(self, i)
214fad3a1d3Sopenharmony_ci    }
215fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
216fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
217fad3a1d3Sopenharmony_ci    fn fold_expr_index(&mut self, i: ExprIndex) -> ExprIndex {
218fad3a1d3Sopenharmony_ci        fold_expr_index(self, i)
219fad3a1d3Sopenharmony_ci    }
220fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
221fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
222fad3a1d3Sopenharmony_ci    fn fold_expr_infer(&mut self, i: ExprInfer) -> ExprInfer {
223fad3a1d3Sopenharmony_ci        fold_expr_infer(self, i)
224fad3a1d3Sopenharmony_ci    }
225fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
226fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
227fad3a1d3Sopenharmony_ci    fn fold_expr_let(&mut self, i: ExprLet) -> ExprLet {
228fad3a1d3Sopenharmony_ci        fold_expr_let(self, i)
229fad3a1d3Sopenharmony_ci    }
230fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
231fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
232fad3a1d3Sopenharmony_ci    fn fold_expr_lit(&mut self, i: ExprLit) -> ExprLit {
233fad3a1d3Sopenharmony_ci        fold_expr_lit(self, i)
234fad3a1d3Sopenharmony_ci    }
235fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
236fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
237fad3a1d3Sopenharmony_ci    fn fold_expr_loop(&mut self, i: ExprLoop) -> ExprLoop {
238fad3a1d3Sopenharmony_ci        fold_expr_loop(self, i)
239fad3a1d3Sopenharmony_ci    }
240fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
241fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
242fad3a1d3Sopenharmony_ci    fn fold_expr_macro(&mut self, i: ExprMacro) -> ExprMacro {
243fad3a1d3Sopenharmony_ci        fold_expr_macro(self, i)
244fad3a1d3Sopenharmony_ci    }
245fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
246fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
247fad3a1d3Sopenharmony_ci    fn fold_expr_match(&mut self, i: ExprMatch) -> ExprMatch {
248fad3a1d3Sopenharmony_ci        fold_expr_match(self, i)
249fad3a1d3Sopenharmony_ci    }
250fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
251fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
252fad3a1d3Sopenharmony_ci    fn fold_expr_method_call(&mut self, i: ExprMethodCall) -> ExprMethodCall {
253fad3a1d3Sopenharmony_ci        fold_expr_method_call(self, i)
254fad3a1d3Sopenharmony_ci    }
255fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
256fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
257fad3a1d3Sopenharmony_ci    fn fold_expr_paren(&mut self, i: ExprParen) -> ExprParen {
258fad3a1d3Sopenharmony_ci        fold_expr_paren(self, i)
259fad3a1d3Sopenharmony_ci    }
260fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
261fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
262fad3a1d3Sopenharmony_ci    fn fold_expr_path(&mut self, i: ExprPath) -> ExprPath {
263fad3a1d3Sopenharmony_ci        fold_expr_path(self, i)
264fad3a1d3Sopenharmony_ci    }
265fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
266fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
267fad3a1d3Sopenharmony_ci    fn fold_expr_range(&mut self, i: ExprRange) -> ExprRange {
268fad3a1d3Sopenharmony_ci        fold_expr_range(self, i)
269fad3a1d3Sopenharmony_ci    }
270fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
271fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
272fad3a1d3Sopenharmony_ci    fn fold_expr_reference(&mut self, i: ExprReference) -> ExprReference {
273fad3a1d3Sopenharmony_ci        fold_expr_reference(self, i)
274fad3a1d3Sopenharmony_ci    }
275fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
276fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
277fad3a1d3Sopenharmony_ci    fn fold_expr_repeat(&mut self, i: ExprRepeat) -> ExprRepeat {
278fad3a1d3Sopenharmony_ci        fold_expr_repeat(self, i)
279fad3a1d3Sopenharmony_ci    }
280fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
281fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
282fad3a1d3Sopenharmony_ci    fn fold_expr_return(&mut self, i: ExprReturn) -> ExprReturn {
283fad3a1d3Sopenharmony_ci        fold_expr_return(self, i)
284fad3a1d3Sopenharmony_ci    }
285fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
286fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
287fad3a1d3Sopenharmony_ci    fn fold_expr_struct(&mut self, i: ExprStruct) -> ExprStruct {
288fad3a1d3Sopenharmony_ci        fold_expr_struct(self, i)
289fad3a1d3Sopenharmony_ci    }
290fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
291fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
292fad3a1d3Sopenharmony_ci    fn fold_expr_try(&mut self, i: ExprTry) -> ExprTry {
293fad3a1d3Sopenharmony_ci        fold_expr_try(self, i)
294fad3a1d3Sopenharmony_ci    }
295fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
296fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
297fad3a1d3Sopenharmony_ci    fn fold_expr_try_block(&mut self, i: ExprTryBlock) -> ExprTryBlock {
298fad3a1d3Sopenharmony_ci        fold_expr_try_block(self, i)
299fad3a1d3Sopenharmony_ci    }
300fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
301fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
302fad3a1d3Sopenharmony_ci    fn fold_expr_tuple(&mut self, i: ExprTuple) -> ExprTuple {
303fad3a1d3Sopenharmony_ci        fold_expr_tuple(self, i)
304fad3a1d3Sopenharmony_ci    }
305fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
306fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
307fad3a1d3Sopenharmony_ci    fn fold_expr_unary(&mut self, i: ExprUnary) -> ExprUnary {
308fad3a1d3Sopenharmony_ci        fold_expr_unary(self, i)
309fad3a1d3Sopenharmony_ci    }
310fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
311fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
312fad3a1d3Sopenharmony_ci    fn fold_expr_unsafe(&mut self, i: ExprUnsafe) -> ExprUnsafe {
313fad3a1d3Sopenharmony_ci        fold_expr_unsafe(self, i)
314fad3a1d3Sopenharmony_ci    }
315fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
316fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
317fad3a1d3Sopenharmony_ci    fn fold_expr_while(&mut self, i: ExprWhile) -> ExprWhile {
318fad3a1d3Sopenharmony_ci        fold_expr_while(self, i)
319fad3a1d3Sopenharmony_ci    }
320fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
321fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
322fad3a1d3Sopenharmony_ci    fn fold_expr_yield(&mut self, i: ExprYield) -> ExprYield {
323fad3a1d3Sopenharmony_ci        fold_expr_yield(self, i)
324fad3a1d3Sopenharmony_ci    }
325fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
326fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
327fad3a1d3Sopenharmony_ci    fn fold_field(&mut self, i: Field) -> Field {
328fad3a1d3Sopenharmony_ci        fold_field(self, i)
329fad3a1d3Sopenharmony_ci    }
330fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
331fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
332fad3a1d3Sopenharmony_ci    fn fold_field_mutability(&mut self, i: FieldMutability) -> FieldMutability {
333fad3a1d3Sopenharmony_ci        fold_field_mutability(self, i)
334fad3a1d3Sopenharmony_ci    }
335fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
336fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
337fad3a1d3Sopenharmony_ci    fn fold_field_pat(&mut self, i: FieldPat) -> FieldPat {
338fad3a1d3Sopenharmony_ci        fold_field_pat(self, i)
339fad3a1d3Sopenharmony_ci    }
340fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
341fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
342fad3a1d3Sopenharmony_ci    fn fold_field_value(&mut self, i: FieldValue) -> FieldValue {
343fad3a1d3Sopenharmony_ci        fold_field_value(self, i)
344fad3a1d3Sopenharmony_ci    }
345fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
346fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
347fad3a1d3Sopenharmony_ci    fn fold_fields(&mut self, i: Fields) -> Fields {
348fad3a1d3Sopenharmony_ci        fold_fields(self, i)
349fad3a1d3Sopenharmony_ci    }
350fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
351fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
352fad3a1d3Sopenharmony_ci    fn fold_fields_named(&mut self, i: FieldsNamed) -> FieldsNamed {
353fad3a1d3Sopenharmony_ci        fold_fields_named(self, i)
354fad3a1d3Sopenharmony_ci    }
355fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
356fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
357fad3a1d3Sopenharmony_ci    fn fold_fields_unnamed(&mut self, i: FieldsUnnamed) -> FieldsUnnamed {
358fad3a1d3Sopenharmony_ci        fold_fields_unnamed(self, i)
359fad3a1d3Sopenharmony_ci    }
360fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
361fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
362fad3a1d3Sopenharmony_ci    fn fold_file(&mut self, i: File) -> File {
363fad3a1d3Sopenharmony_ci        fold_file(self, i)
364fad3a1d3Sopenharmony_ci    }
365fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
366fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
367fad3a1d3Sopenharmony_ci    fn fold_fn_arg(&mut self, i: FnArg) -> FnArg {
368fad3a1d3Sopenharmony_ci        fold_fn_arg(self, i)
369fad3a1d3Sopenharmony_ci    }
370fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
371fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
372fad3a1d3Sopenharmony_ci    fn fold_foreign_item(&mut self, i: ForeignItem) -> ForeignItem {
373fad3a1d3Sopenharmony_ci        fold_foreign_item(self, i)
374fad3a1d3Sopenharmony_ci    }
375fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
376fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
377fad3a1d3Sopenharmony_ci    fn fold_foreign_item_fn(&mut self, i: ForeignItemFn) -> ForeignItemFn {
378fad3a1d3Sopenharmony_ci        fold_foreign_item_fn(self, i)
379fad3a1d3Sopenharmony_ci    }
380fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
381fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
382fad3a1d3Sopenharmony_ci    fn fold_foreign_item_macro(&mut self, i: ForeignItemMacro) -> ForeignItemMacro {
383fad3a1d3Sopenharmony_ci        fold_foreign_item_macro(self, i)
384fad3a1d3Sopenharmony_ci    }
385fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
386fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
387fad3a1d3Sopenharmony_ci    fn fold_foreign_item_static(&mut self, i: ForeignItemStatic) -> ForeignItemStatic {
388fad3a1d3Sopenharmony_ci        fold_foreign_item_static(self, i)
389fad3a1d3Sopenharmony_ci    }
390fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
391fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
392fad3a1d3Sopenharmony_ci    fn fold_foreign_item_type(&mut self, i: ForeignItemType) -> ForeignItemType {
393fad3a1d3Sopenharmony_ci        fold_foreign_item_type(self, i)
394fad3a1d3Sopenharmony_ci    }
395fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
396fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
397fad3a1d3Sopenharmony_ci    fn fold_generic_argument(&mut self, i: GenericArgument) -> GenericArgument {
398fad3a1d3Sopenharmony_ci        fold_generic_argument(self, i)
399fad3a1d3Sopenharmony_ci    }
400fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
401fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
402fad3a1d3Sopenharmony_ci    fn fold_generic_param(&mut self, i: GenericParam) -> GenericParam {
403fad3a1d3Sopenharmony_ci        fold_generic_param(self, i)
404fad3a1d3Sopenharmony_ci    }
405fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
406fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
407fad3a1d3Sopenharmony_ci    fn fold_generics(&mut self, i: Generics) -> Generics {
408fad3a1d3Sopenharmony_ci        fold_generics(self, i)
409fad3a1d3Sopenharmony_ci    }
410fad3a1d3Sopenharmony_ci    fn fold_ident(&mut self, i: Ident) -> Ident {
411fad3a1d3Sopenharmony_ci        fold_ident(self, i)
412fad3a1d3Sopenharmony_ci    }
413fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
414fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
415fad3a1d3Sopenharmony_ci    fn fold_impl_item(&mut self, i: ImplItem) -> ImplItem {
416fad3a1d3Sopenharmony_ci        fold_impl_item(self, i)
417fad3a1d3Sopenharmony_ci    }
418fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
419fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
420fad3a1d3Sopenharmony_ci    fn fold_impl_item_const(&mut self, i: ImplItemConst) -> ImplItemConst {
421fad3a1d3Sopenharmony_ci        fold_impl_item_const(self, i)
422fad3a1d3Sopenharmony_ci    }
423fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
424fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
425fad3a1d3Sopenharmony_ci    fn fold_impl_item_fn(&mut self, i: ImplItemFn) -> ImplItemFn {
426fad3a1d3Sopenharmony_ci        fold_impl_item_fn(self, i)
427fad3a1d3Sopenharmony_ci    }
428fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
429fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
430fad3a1d3Sopenharmony_ci    fn fold_impl_item_macro(&mut self, i: ImplItemMacro) -> ImplItemMacro {
431fad3a1d3Sopenharmony_ci        fold_impl_item_macro(self, i)
432fad3a1d3Sopenharmony_ci    }
433fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
434fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
435fad3a1d3Sopenharmony_ci    fn fold_impl_item_type(&mut self, i: ImplItemType) -> ImplItemType {
436fad3a1d3Sopenharmony_ci        fold_impl_item_type(self, i)
437fad3a1d3Sopenharmony_ci    }
438fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
439fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
440fad3a1d3Sopenharmony_ci    fn fold_impl_restriction(&mut self, i: ImplRestriction) -> ImplRestriction {
441fad3a1d3Sopenharmony_ci        fold_impl_restriction(self, i)
442fad3a1d3Sopenharmony_ci    }
443fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
444fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
445fad3a1d3Sopenharmony_ci    fn fold_index(&mut self, i: Index) -> Index {
446fad3a1d3Sopenharmony_ci        fold_index(self, i)
447fad3a1d3Sopenharmony_ci    }
448fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
449fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
450fad3a1d3Sopenharmony_ci    fn fold_item(&mut self, i: Item) -> Item {
451fad3a1d3Sopenharmony_ci        fold_item(self, i)
452fad3a1d3Sopenharmony_ci    }
453fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
454fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
455fad3a1d3Sopenharmony_ci    fn fold_item_const(&mut self, i: ItemConst) -> ItemConst {
456fad3a1d3Sopenharmony_ci        fold_item_const(self, i)
457fad3a1d3Sopenharmony_ci    }
458fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
459fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
460fad3a1d3Sopenharmony_ci    fn fold_item_enum(&mut self, i: ItemEnum) -> ItemEnum {
461fad3a1d3Sopenharmony_ci        fold_item_enum(self, i)
462fad3a1d3Sopenharmony_ci    }
463fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
464fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
465fad3a1d3Sopenharmony_ci    fn fold_item_extern_crate(&mut self, i: ItemExternCrate) -> ItemExternCrate {
466fad3a1d3Sopenharmony_ci        fold_item_extern_crate(self, i)
467fad3a1d3Sopenharmony_ci    }
468fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
469fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
470fad3a1d3Sopenharmony_ci    fn fold_item_fn(&mut self, i: ItemFn) -> ItemFn {
471fad3a1d3Sopenharmony_ci        fold_item_fn(self, i)
472fad3a1d3Sopenharmony_ci    }
473fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
474fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
475fad3a1d3Sopenharmony_ci    fn fold_item_foreign_mod(&mut self, i: ItemForeignMod) -> ItemForeignMod {
476fad3a1d3Sopenharmony_ci        fold_item_foreign_mod(self, i)
477fad3a1d3Sopenharmony_ci    }
478fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
479fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
480fad3a1d3Sopenharmony_ci    fn fold_item_impl(&mut self, i: ItemImpl) -> ItemImpl {
481fad3a1d3Sopenharmony_ci        fold_item_impl(self, i)
482fad3a1d3Sopenharmony_ci    }
483fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
484fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
485fad3a1d3Sopenharmony_ci    fn fold_item_macro(&mut self, i: ItemMacro) -> ItemMacro {
486fad3a1d3Sopenharmony_ci        fold_item_macro(self, i)
487fad3a1d3Sopenharmony_ci    }
488fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
489fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
490fad3a1d3Sopenharmony_ci    fn fold_item_mod(&mut self, i: ItemMod) -> ItemMod {
491fad3a1d3Sopenharmony_ci        fold_item_mod(self, i)
492fad3a1d3Sopenharmony_ci    }
493fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
494fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
495fad3a1d3Sopenharmony_ci    fn fold_item_static(&mut self, i: ItemStatic) -> ItemStatic {
496fad3a1d3Sopenharmony_ci        fold_item_static(self, i)
497fad3a1d3Sopenharmony_ci    }
498fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
499fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
500fad3a1d3Sopenharmony_ci    fn fold_item_struct(&mut self, i: ItemStruct) -> ItemStruct {
501fad3a1d3Sopenharmony_ci        fold_item_struct(self, i)
502fad3a1d3Sopenharmony_ci    }
503fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
504fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
505fad3a1d3Sopenharmony_ci    fn fold_item_trait(&mut self, i: ItemTrait) -> ItemTrait {
506fad3a1d3Sopenharmony_ci        fold_item_trait(self, i)
507fad3a1d3Sopenharmony_ci    }
508fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
509fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
510fad3a1d3Sopenharmony_ci    fn fold_item_trait_alias(&mut self, i: ItemTraitAlias) -> ItemTraitAlias {
511fad3a1d3Sopenharmony_ci        fold_item_trait_alias(self, i)
512fad3a1d3Sopenharmony_ci    }
513fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
514fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
515fad3a1d3Sopenharmony_ci    fn fold_item_type(&mut self, i: ItemType) -> ItemType {
516fad3a1d3Sopenharmony_ci        fold_item_type(self, i)
517fad3a1d3Sopenharmony_ci    }
518fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
519fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
520fad3a1d3Sopenharmony_ci    fn fold_item_union(&mut self, i: ItemUnion) -> ItemUnion {
521fad3a1d3Sopenharmony_ci        fold_item_union(self, i)
522fad3a1d3Sopenharmony_ci    }
523fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
524fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
525fad3a1d3Sopenharmony_ci    fn fold_item_use(&mut self, i: ItemUse) -> ItemUse {
526fad3a1d3Sopenharmony_ci        fold_item_use(self, i)
527fad3a1d3Sopenharmony_ci    }
528fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
529fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
530fad3a1d3Sopenharmony_ci    fn fold_label(&mut self, i: Label) -> Label {
531fad3a1d3Sopenharmony_ci        fold_label(self, i)
532fad3a1d3Sopenharmony_ci    }
533fad3a1d3Sopenharmony_ci    fn fold_lifetime(&mut self, i: Lifetime) -> Lifetime {
534fad3a1d3Sopenharmony_ci        fold_lifetime(self, i)
535fad3a1d3Sopenharmony_ci    }
536fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
537fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
538fad3a1d3Sopenharmony_ci    fn fold_lifetime_param(&mut self, i: LifetimeParam) -> LifetimeParam {
539fad3a1d3Sopenharmony_ci        fold_lifetime_param(self, i)
540fad3a1d3Sopenharmony_ci    }
541fad3a1d3Sopenharmony_ci    fn fold_lit(&mut self, i: Lit) -> Lit {
542fad3a1d3Sopenharmony_ci        fold_lit(self, i)
543fad3a1d3Sopenharmony_ci    }
544fad3a1d3Sopenharmony_ci    fn fold_lit_bool(&mut self, i: LitBool) -> LitBool {
545fad3a1d3Sopenharmony_ci        fold_lit_bool(self, i)
546fad3a1d3Sopenharmony_ci    }
547fad3a1d3Sopenharmony_ci    fn fold_lit_byte(&mut self, i: LitByte) -> LitByte {
548fad3a1d3Sopenharmony_ci        fold_lit_byte(self, i)
549fad3a1d3Sopenharmony_ci    }
550fad3a1d3Sopenharmony_ci    fn fold_lit_byte_str(&mut self, i: LitByteStr) -> LitByteStr {
551fad3a1d3Sopenharmony_ci        fold_lit_byte_str(self, i)
552fad3a1d3Sopenharmony_ci    }
553fad3a1d3Sopenharmony_ci    fn fold_lit_char(&mut self, i: LitChar) -> LitChar {
554fad3a1d3Sopenharmony_ci        fold_lit_char(self, i)
555fad3a1d3Sopenharmony_ci    }
556fad3a1d3Sopenharmony_ci    fn fold_lit_float(&mut self, i: LitFloat) -> LitFloat {
557fad3a1d3Sopenharmony_ci        fold_lit_float(self, i)
558fad3a1d3Sopenharmony_ci    }
559fad3a1d3Sopenharmony_ci    fn fold_lit_int(&mut self, i: LitInt) -> LitInt {
560fad3a1d3Sopenharmony_ci        fold_lit_int(self, i)
561fad3a1d3Sopenharmony_ci    }
562fad3a1d3Sopenharmony_ci    fn fold_lit_str(&mut self, i: LitStr) -> LitStr {
563fad3a1d3Sopenharmony_ci        fold_lit_str(self, i)
564fad3a1d3Sopenharmony_ci    }
565fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
566fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
567fad3a1d3Sopenharmony_ci    fn fold_local(&mut self, i: Local) -> Local {
568fad3a1d3Sopenharmony_ci        fold_local(self, i)
569fad3a1d3Sopenharmony_ci    }
570fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
571fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
572fad3a1d3Sopenharmony_ci    fn fold_local_init(&mut self, i: LocalInit) -> LocalInit {
573fad3a1d3Sopenharmony_ci        fold_local_init(self, i)
574fad3a1d3Sopenharmony_ci    }
575fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
576fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
577fad3a1d3Sopenharmony_ci    fn fold_macro(&mut self, i: Macro) -> Macro {
578fad3a1d3Sopenharmony_ci        fold_macro(self, i)
579fad3a1d3Sopenharmony_ci    }
580fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
581fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
582fad3a1d3Sopenharmony_ci    fn fold_macro_delimiter(&mut self, i: MacroDelimiter) -> MacroDelimiter {
583fad3a1d3Sopenharmony_ci        fold_macro_delimiter(self, i)
584fad3a1d3Sopenharmony_ci    }
585fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
586fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
587fad3a1d3Sopenharmony_ci    fn fold_member(&mut self, i: Member) -> Member {
588fad3a1d3Sopenharmony_ci        fold_member(self, i)
589fad3a1d3Sopenharmony_ci    }
590fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
591fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
592fad3a1d3Sopenharmony_ci    fn fold_meta(&mut self, i: Meta) -> Meta {
593fad3a1d3Sopenharmony_ci        fold_meta(self, i)
594fad3a1d3Sopenharmony_ci    }
595fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
596fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
597fad3a1d3Sopenharmony_ci    fn fold_meta_list(&mut self, i: MetaList) -> MetaList {
598fad3a1d3Sopenharmony_ci        fold_meta_list(self, i)
599fad3a1d3Sopenharmony_ci    }
600fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
601fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
602fad3a1d3Sopenharmony_ci    fn fold_meta_name_value(&mut self, i: MetaNameValue) -> MetaNameValue {
603fad3a1d3Sopenharmony_ci        fold_meta_name_value(self, i)
604fad3a1d3Sopenharmony_ci    }
605fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
606fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
607fad3a1d3Sopenharmony_ci    fn fold_parenthesized_generic_arguments(
608fad3a1d3Sopenharmony_ci        &mut self,
609fad3a1d3Sopenharmony_ci        i: ParenthesizedGenericArguments,
610fad3a1d3Sopenharmony_ci    ) -> ParenthesizedGenericArguments {
611fad3a1d3Sopenharmony_ci        fold_parenthesized_generic_arguments(self, i)
612fad3a1d3Sopenharmony_ci    }
613fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
614fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
615fad3a1d3Sopenharmony_ci    fn fold_pat(&mut self, i: Pat) -> Pat {
616fad3a1d3Sopenharmony_ci        fold_pat(self, i)
617fad3a1d3Sopenharmony_ci    }
618fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
619fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
620fad3a1d3Sopenharmony_ci    fn fold_pat_ident(&mut self, i: PatIdent) -> PatIdent {
621fad3a1d3Sopenharmony_ci        fold_pat_ident(self, i)
622fad3a1d3Sopenharmony_ci    }
623fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
624fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
625fad3a1d3Sopenharmony_ci    fn fold_pat_or(&mut self, i: PatOr) -> PatOr {
626fad3a1d3Sopenharmony_ci        fold_pat_or(self, i)
627fad3a1d3Sopenharmony_ci    }
628fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
629fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
630fad3a1d3Sopenharmony_ci    fn fold_pat_paren(&mut self, i: PatParen) -> PatParen {
631fad3a1d3Sopenharmony_ci        fold_pat_paren(self, i)
632fad3a1d3Sopenharmony_ci    }
633fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
634fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
635fad3a1d3Sopenharmony_ci    fn fold_pat_reference(&mut self, i: PatReference) -> PatReference {
636fad3a1d3Sopenharmony_ci        fold_pat_reference(self, i)
637fad3a1d3Sopenharmony_ci    }
638fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
639fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
640fad3a1d3Sopenharmony_ci    fn fold_pat_rest(&mut self, i: PatRest) -> PatRest {
641fad3a1d3Sopenharmony_ci        fold_pat_rest(self, i)
642fad3a1d3Sopenharmony_ci    }
643fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
644fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
645fad3a1d3Sopenharmony_ci    fn fold_pat_slice(&mut self, i: PatSlice) -> PatSlice {
646fad3a1d3Sopenharmony_ci        fold_pat_slice(self, i)
647fad3a1d3Sopenharmony_ci    }
648fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
649fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
650fad3a1d3Sopenharmony_ci    fn fold_pat_struct(&mut self, i: PatStruct) -> PatStruct {
651fad3a1d3Sopenharmony_ci        fold_pat_struct(self, i)
652fad3a1d3Sopenharmony_ci    }
653fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
654fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
655fad3a1d3Sopenharmony_ci    fn fold_pat_tuple(&mut self, i: PatTuple) -> PatTuple {
656fad3a1d3Sopenharmony_ci        fold_pat_tuple(self, i)
657fad3a1d3Sopenharmony_ci    }
658fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
659fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
660fad3a1d3Sopenharmony_ci    fn fold_pat_tuple_struct(&mut self, i: PatTupleStruct) -> PatTupleStruct {
661fad3a1d3Sopenharmony_ci        fold_pat_tuple_struct(self, i)
662fad3a1d3Sopenharmony_ci    }
663fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
664fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
665fad3a1d3Sopenharmony_ci    fn fold_pat_type(&mut self, i: PatType) -> PatType {
666fad3a1d3Sopenharmony_ci        fold_pat_type(self, i)
667fad3a1d3Sopenharmony_ci    }
668fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
669fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
670fad3a1d3Sopenharmony_ci    fn fold_pat_wild(&mut self, i: PatWild) -> PatWild {
671fad3a1d3Sopenharmony_ci        fold_pat_wild(self, i)
672fad3a1d3Sopenharmony_ci    }
673fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
674fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
675fad3a1d3Sopenharmony_ci    fn fold_path(&mut self, i: Path) -> Path {
676fad3a1d3Sopenharmony_ci        fold_path(self, i)
677fad3a1d3Sopenharmony_ci    }
678fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
679fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
680fad3a1d3Sopenharmony_ci    fn fold_path_arguments(&mut self, i: PathArguments) -> PathArguments {
681fad3a1d3Sopenharmony_ci        fold_path_arguments(self, i)
682fad3a1d3Sopenharmony_ci    }
683fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
684fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
685fad3a1d3Sopenharmony_ci    fn fold_path_segment(&mut self, i: PathSegment) -> PathSegment {
686fad3a1d3Sopenharmony_ci        fold_path_segment(self, i)
687fad3a1d3Sopenharmony_ci    }
688fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
689fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
690fad3a1d3Sopenharmony_ci    fn fold_predicate_lifetime(&mut self, i: PredicateLifetime) -> PredicateLifetime {
691fad3a1d3Sopenharmony_ci        fold_predicate_lifetime(self, i)
692fad3a1d3Sopenharmony_ci    }
693fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
694fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
695fad3a1d3Sopenharmony_ci    fn fold_predicate_type(&mut self, i: PredicateType) -> PredicateType {
696fad3a1d3Sopenharmony_ci        fold_predicate_type(self, i)
697fad3a1d3Sopenharmony_ci    }
698fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
699fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
700fad3a1d3Sopenharmony_ci    fn fold_qself(&mut self, i: QSelf) -> QSelf {
701fad3a1d3Sopenharmony_ci        fold_qself(self, i)
702fad3a1d3Sopenharmony_ci    }
703fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
704fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
705fad3a1d3Sopenharmony_ci    fn fold_range_limits(&mut self, i: RangeLimits) -> RangeLimits {
706fad3a1d3Sopenharmony_ci        fold_range_limits(self, i)
707fad3a1d3Sopenharmony_ci    }
708fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
709fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
710fad3a1d3Sopenharmony_ci    fn fold_receiver(&mut self, i: Receiver) -> Receiver {
711fad3a1d3Sopenharmony_ci        fold_receiver(self, i)
712fad3a1d3Sopenharmony_ci    }
713fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
714fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
715fad3a1d3Sopenharmony_ci    fn fold_return_type(&mut self, i: ReturnType) -> ReturnType {
716fad3a1d3Sopenharmony_ci        fold_return_type(self, i)
717fad3a1d3Sopenharmony_ci    }
718fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
719fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
720fad3a1d3Sopenharmony_ci    fn fold_signature(&mut self, i: Signature) -> Signature {
721fad3a1d3Sopenharmony_ci        fold_signature(self, i)
722fad3a1d3Sopenharmony_ci    }
723fad3a1d3Sopenharmony_ci    fn fold_span(&mut self, i: Span) -> Span {
724fad3a1d3Sopenharmony_ci        fold_span(self, i)
725fad3a1d3Sopenharmony_ci    }
726fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
727fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
728fad3a1d3Sopenharmony_ci    fn fold_static_mutability(&mut self, i: StaticMutability) -> StaticMutability {
729fad3a1d3Sopenharmony_ci        fold_static_mutability(self, i)
730fad3a1d3Sopenharmony_ci    }
731fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
732fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
733fad3a1d3Sopenharmony_ci    fn fold_stmt(&mut self, i: Stmt) -> Stmt {
734fad3a1d3Sopenharmony_ci        fold_stmt(self, i)
735fad3a1d3Sopenharmony_ci    }
736fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
737fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
738fad3a1d3Sopenharmony_ci    fn fold_stmt_macro(&mut self, i: StmtMacro) -> StmtMacro {
739fad3a1d3Sopenharmony_ci        fold_stmt_macro(self, i)
740fad3a1d3Sopenharmony_ci    }
741fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
742fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
743fad3a1d3Sopenharmony_ci    fn fold_trait_bound(&mut self, i: TraitBound) -> TraitBound {
744fad3a1d3Sopenharmony_ci        fold_trait_bound(self, i)
745fad3a1d3Sopenharmony_ci    }
746fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
747fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
748fad3a1d3Sopenharmony_ci    fn fold_trait_bound_modifier(
749fad3a1d3Sopenharmony_ci        &mut self,
750fad3a1d3Sopenharmony_ci        i: TraitBoundModifier,
751fad3a1d3Sopenharmony_ci    ) -> TraitBoundModifier {
752fad3a1d3Sopenharmony_ci        fold_trait_bound_modifier(self, i)
753fad3a1d3Sopenharmony_ci    }
754fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
755fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
756fad3a1d3Sopenharmony_ci    fn fold_trait_item(&mut self, i: TraitItem) -> TraitItem {
757fad3a1d3Sopenharmony_ci        fold_trait_item(self, i)
758fad3a1d3Sopenharmony_ci    }
759fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
760fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
761fad3a1d3Sopenharmony_ci    fn fold_trait_item_const(&mut self, i: TraitItemConst) -> TraitItemConst {
762fad3a1d3Sopenharmony_ci        fold_trait_item_const(self, i)
763fad3a1d3Sopenharmony_ci    }
764fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
765fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
766fad3a1d3Sopenharmony_ci    fn fold_trait_item_fn(&mut self, i: TraitItemFn) -> TraitItemFn {
767fad3a1d3Sopenharmony_ci        fold_trait_item_fn(self, i)
768fad3a1d3Sopenharmony_ci    }
769fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
770fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
771fad3a1d3Sopenharmony_ci    fn fold_trait_item_macro(&mut self, i: TraitItemMacro) -> TraitItemMacro {
772fad3a1d3Sopenharmony_ci        fold_trait_item_macro(self, i)
773fad3a1d3Sopenharmony_ci    }
774fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
775fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
776fad3a1d3Sopenharmony_ci    fn fold_trait_item_type(&mut self, i: TraitItemType) -> TraitItemType {
777fad3a1d3Sopenharmony_ci        fold_trait_item_type(self, i)
778fad3a1d3Sopenharmony_ci    }
779fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
780fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
781fad3a1d3Sopenharmony_ci    fn fold_type(&mut self, i: Type) -> Type {
782fad3a1d3Sopenharmony_ci        fold_type(self, i)
783fad3a1d3Sopenharmony_ci    }
784fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
785fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
786fad3a1d3Sopenharmony_ci    fn fold_type_array(&mut self, i: TypeArray) -> TypeArray {
787fad3a1d3Sopenharmony_ci        fold_type_array(self, i)
788fad3a1d3Sopenharmony_ci    }
789fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
790fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
791fad3a1d3Sopenharmony_ci    fn fold_type_bare_fn(&mut self, i: TypeBareFn) -> TypeBareFn {
792fad3a1d3Sopenharmony_ci        fold_type_bare_fn(self, i)
793fad3a1d3Sopenharmony_ci    }
794fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
795fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
796fad3a1d3Sopenharmony_ci    fn fold_type_group(&mut self, i: TypeGroup) -> TypeGroup {
797fad3a1d3Sopenharmony_ci        fold_type_group(self, i)
798fad3a1d3Sopenharmony_ci    }
799fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
800fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
801fad3a1d3Sopenharmony_ci    fn fold_type_impl_trait(&mut self, i: TypeImplTrait) -> TypeImplTrait {
802fad3a1d3Sopenharmony_ci        fold_type_impl_trait(self, i)
803fad3a1d3Sopenharmony_ci    }
804fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
805fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
806fad3a1d3Sopenharmony_ci    fn fold_type_infer(&mut self, i: TypeInfer) -> TypeInfer {
807fad3a1d3Sopenharmony_ci        fold_type_infer(self, i)
808fad3a1d3Sopenharmony_ci    }
809fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
810fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
811fad3a1d3Sopenharmony_ci    fn fold_type_macro(&mut self, i: TypeMacro) -> TypeMacro {
812fad3a1d3Sopenharmony_ci        fold_type_macro(self, i)
813fad3a1d3Sopenharmony_ci    }
814fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
815fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
816fad3a1d3Sopenharmony_ci    fn fold_type_never(&mut self, i: TypeNever) -> TypeNever {
817fad3a1d3Sopenharmony_ci        fold_type_never(self, i)
818fad3a1d3Sopenharmony_ci    }
819fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
820fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
821fad3a1d3Sopenharmony_ci    fn fold_type_param(&mut self, i: TypeParam) -> TypeParam {
822fad3a1d3Sopenharmony_ci        fold_type_param(self, i)
823fad3a1d3Sopenharmony_ci    }
824fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
825fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
826fad3a1d3Sopenharmony_ci    fn fold_type_param_bound(&mut self, i: TypeParamBound) -> TypeParamBound {
827fad3a1d3Sopenharmony_ci        fold_type_param_bound(self, i)
828fad3a1d3Sopenharmony_ci    }
829fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
830fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
831fad3a1d3Sopenharmony_ci    fn fold_type_paren(&mut self, i: TypeParen) -> TypeParen {
832fad3a1d3Sopenharmony_ci        fold_type_paren(self, i)
833fad3a1d3Sopenharmony_ci    }
834fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
835fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
836fad3a1d3Sopenharmony_ci    fn fold_type_path(&mut self, i: TypePath) -> TypePath {
837fad3a1d3Sopenharmony_ci        fold_type_path(self, i)
838fad3a1d3Sopenharmony_ci    }
839fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
840fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
841fad3a1d3Sopenharmony_ci    fn fold_type_ptr(&mut self, i: TypePtr) -> TypePtr {
842fad3a1d3Sopenharmony_ci        fold_type_ptr(self, i)
843fad3a1d3Sopenharmony_ci    }
844fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
845fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
846fad3a1d3Sopenharmony_ci    fn fold_type_reference(&mut self, i: TypeReference) -> TypeReference {
847fad3a1d3Sopenharmony_ci        fold_type_reference(self, i)
848fad3a1d3Sopenharmony_ci    }
849fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
850fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
851fad3a1d3Sopenharmony_ci    fn fold_type_slice(&mut self, i: TypeSlice) -> TypeSlice {
852fad3a1d3Sopenharmony_ci        fold_type_slice(self, i)
853fad3a1d3Sopenharmony_ci    }
854fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
855fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
856fad3a1d3Sopenharmony_ci    fn fold_type_trait_object(&mut self, i: TypeTraitObject) -> TypeTraitObject {
857fad3a1d3Sopenharmony_ci        fold_type_trait_object(self, i)
858fad3a1d3Sopenharmony_ci    }
859fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
860fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
861fad3a1d3Sopenharmony_ci    fn fold_type_tuple(&mut self, i: TypeTuple) -> TypeTuple {
862fad3a1d3Sopenharmony_ci        fold_type_tuple(self, i)
863fad3a1d3Sopenharmony_ci    }
864fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
865fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
866fad3a1d3Sopenharmony_ci    fn fold_un_op(&mut self, i: UnOp) -> UnOp {
867fad3a1d3Sopenharmony_ci        fold_un_op(self, i)
868fad3a1d3Sopenharmony_ci    }
869fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
870fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
871fad3a1d3Sopenharmony_ci    fn fold_use_glob(&mut self, i: UseGlob) -> UseGlob {
872fad3a1d3Sopenharmony_ci        fold_use_glob(self, i)
873fad3a1d3Sopenharmony_ci    }
874fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
875fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
876fad3a1d3Sopenharmony_ci    fn fold_use_group(&mut self, i: UseGroup) -> UseGroup {
877fad3a1d3Sopenharmony_ci        fold_use_group(self, i)
878fad3a1d3Sopenharmony_ci    }
879fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
880fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
881fad3a1d3Sopenharmony_ci    fn fold_use_name(&mut self, i: UseName) -> UseName {
882fad3a1d3Sopenharmony_ci        fold_use_name(self, i)
883fad3a1d3Sopenharmony_ci    }
884fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
885fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
886fad3a1d3Sopenharmony_ci    fn fold_use_path(&mut self, i: UsePath) -> UsePath {
887fad3a1d3Sopenharmony_ci        fold_use_path(self, i)
888fad3a1d3Sopenharmony_ci    }
889fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
890fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
891fad3a1d3Sopenharmony_ci    fn fold_use_rename(&mut self, i: UseRename) -> UseRename {
892fad3a1d3Sopenharmony_ci        fold_use_rename(self, i)
893fad3a1d3Sopenharmony_ci    }
894fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
895fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
896fad3a1d3Sopenharmony_ci    fn fold_use_tree(&mut self, i: UseTree) -> UseTree {
897fad3a1d3Sopenharmony_ci        fold_use_tree(self, i)
898fad3a1d3Sopenharmony_ci    }
899fad3a1d3Sopenharmony_ci    #[cfg(feature = "full")]
900fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
901fad3a1d3Sopenharmony_ci    fn fold_variadic(&mut self, i: Variadic) -> Variadic {
902fad3a1d3Sopenharmony_ci        fold_variadic(self, i)
903fad3a1d3Sopenharmony_ci    }
904fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
905fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
906fad3a1d3Sopenharmony_ci    fn fold_variant(&mut self, i: Variant) -> Variant {
907fad3a1d3Sopenharmony_ci        fold_variant(self, i)
908fad3a1d3Sopenharmony_ci    }
909fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
910fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
911fad3a1d3Sopenharmony_ci    fn fold_vis_restricted(&mut self, i: VisRestricted) -> VisRestricted {
912fad3a1d3Sopenharmony_ci        fold_vis_restricted(self, i)
913fad3a1d3Sopenharmony_ci    }
914fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
915fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
916fad3a1d3Sopenharmony_ci    fn fold_visibility(&mut self, i: Visibility) -> Visibility {
917fad3a1d3Sopenharmony_ci        fold_visibility(self, i)
918fad3a1d3Sopenharmony_ci    }
919fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
920fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
921fad3a1d3Sopenharmony_ci    fn fold_where_clause(&mut self, i: WhereClause) -> WhereClause {
922fad3a1d3Sopenharmony_ci        fold_where_clause(self, i)
923fad3a1d3Sopenharmony_ci    }
924fad3a1d3Sopenharmony_ci    #[cfg(any(feature = "derive", feature = "full"))]
925fad3a1d3Sopenharmony_ci    #[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
926fad3a1d3Sopenharmony_ci    fn fold_where_predicate(&mut self, i: WherePredicate) -> WherePredicate {
927fad3a1d3Sopenharmony_ci        fold_where_predicate(self, i)
928fad3a1d3Sopenharmony_ci    }
929fad3a1d3Sopenharmony_ci}
930fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
931fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
932fad3a1d3Sopenharmony_cipub fn fold_abi<F>(f: &mut F, node: Abi) -> Abi
933fad3a1d3Sopenharmony_ciwhere
934fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
935fad3a1d3Sopenharmony_ci{
936fad3a1d3Sopenharmony_ci    Abi {
937fad3a1d3Sopenharmony_ci        extern_token: node.extern_token,
938fad3a1d3Sopenharmony_ci        name: (node.name).map(|it| f.fold_lit_str(it)),
939fad3a1d3Sopenharmony_ci    }
940fad3a1d3Sopenharmony_ci}
941fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
942fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
943fad3a1d3Sopenharmony_cipub fn fold_angle_bracketed_generic_arguments<F>(
944fad3a1d3Sopenharmony_ci    f: &mut F,
945fad3a1d3Sopenharmony_ci    node: AngleBracketedGenericArguments,
946fad3a1d3Sopenharmony_ci) -> AngleBracketedGenericArguments
947fad3a1d3Sopenharmony_ciwhere
948fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
949fad3a1d3Sopenharmony_ci{
950fad3a1d3Sopenharmony_ci    AngleBracketedGenericArguments {
951fad3a1d3Sopenharmony_ci        colon2_token: node.colon2_token,
952fad3a1d3Sopenharmony_ci        lt_token: node.lt_token,
953fad3a1d3Sopenharmony_ci        args: FoldHelper::lift(node.args, |it| f.fold_generic_argument(it)),
954fad3a1d3Sopenharmony_ci        gt_token: node.gt_token,
955fad3a1d3Sopenharmony_ci    }
956fad3a1d3Sopenharmony_ci}
957fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
958fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
959fad3a1d3Sopenharmony_cipub fn fold_arm<F>(f: &mut F, node: Arm) -> Arm
960fad3a1d3Sopenharmony_ciwhere
961fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
962fad3a1d3Sopenharmony_ci{
963fad3a1d3Sopenharmony_ci    Arm {
964fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
965fad3a1d3Sopenharmony_ci        pat: f.fold_pat(node.pat),
966fad3a1d3Sopenharmony_ci        guard: (node.guard).map(|it| ((it).0, Box::new(f.fold_expr(*(it).1)))),
967fad3a1d3Sopenharmony_ci        fat_arrow_token: node.fat_arrow_token,
968fad3a1d3Sopenharmony_ci        body: Box::new(f.fold_expr(*node.body)),
969fad3a1d3Sopenharmony_ci        comma: node.comma,
970fad3a1d3Sopenharmony_ci    }
971fad3a1d3Sopenharmony_ci}
972fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
973fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
974fad3a1d3Sopenharmony_cipub fn fold_assoc_const<F>(f: &mut F, node: AssocConst) -> AssocConst
975fad3a1d3Sopenharmony_ciwhere
976fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
977fad3a1d3Sopenharmony_ci{
978fad3a1d3Sopenharmony_ci    AssocConst {
979fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
980fad3a1d3Sopenharmony_ci        generics: (node.generics).map(|it| f.fold_angle_bracketed_generic_arguments(it)),
981fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
982fad3a1d3Sopenharmony_ci        value: f.fold_expr(node.value),
983fad3a1d3Sopenharmony_ci    }
984fad3a1d3Sopenharmony_ci}
985fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
986fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
987fad3a1d3Sopenharmony_cipub fn fold_assoc_type<F>(f: &mut F, node: AssocType) -> AssocType
988fad3a1d3Sopenharmony_ciwhere
989fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
990fad3a1d3Sopenharmony_ci{
991fad3a1d3Sopenharmony_ci    AssocType {
992fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
993fad3a1d3Sopenharmony_ci        generics: (node.generics).map(|it| f.fold_angle_bracketed_generic_arguments(it)),
994fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
995fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
996fad3a1d3Sopenharmony_ci    }
997fad3a1d3Sopenharmony_ci}
998fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
999fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1000fad3a1d3Sopenharmony_cipub fn fold_attr_style<F>(f: &mut F, node: AttrStyle) -> AttrStyle
1001fad3a1d3Sopenharmony_ciwhere
1002fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1003fad3a1d3Sopenharmony_ci{
1004fad3a1d3Sopenharmony_ci    match node {
1005fad3a1d3Sopenharmony_ci        AttrStyle::Outer => AttrStyle::Outer,
1006fad3a1d3Sopenharmony_ci        AttrStyle::Inner(_binding_0) => AttrStyle::Inner(_binding_0),
1007fad3a1d3Sopenharmony_ci    }
1008fad3a1d3Sopenharmony_ci}
1009fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1010fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1011fad3a1d3Sopenharmony_cipub fn fold_attribute<F>(f: &mut F, node: Attribute) -> Attribute
1012fad3a1d3Sopenharmony_ciwhere
1013fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1014fad3a1d3Sopenharmony_ci{
1015fad3a1d3Sopenharmony_ci    Attribute {
1016fad3a1d3Sopenharmony_ci        pound_token: node.pound_token,
1017fad3a1d3Sopenharmony_ci        style: f.fold_attr_style(node.style),
1018fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
1019fad3a1d3Sopenharmony_ci        meta: f.fold_meta(node.meta),
1020fad3a1d3Sopenharmony_ci    }
1021fad3a1d3Sopenharmony_ci}
1022fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1023fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1024fad3a1d3Sopenharmony_cipub fn fold_bare_fn_arg<F>(f: &mut F, node: BareFnArg) -> BareFnArg
1025fad3a1d3Sopenharmony_ciwhere
1026fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1027fad3a1d3Sopenharmony_ci{
1028fad3a1d3Sopenharmony_ci    BareFnArg {
1029fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1030fad3a1d3Sopenharmony_ci        name: (node.name).map(|it| (f.fold_ident((it).0), (it).1)),
1031fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
1032fad3a1d3Sopenharmony_ci    }
1033fad3a1d3Sopenharmony_ci}
1034fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1035fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1036fad3a1d3Sopenharmony_cipub fn fold_bare_variadic<F>(f: &mut F, node: BareVariadic) -> BareVariadic
1037fad3a1d3Sopenharmony_ciwhere
1038fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1039fad3a1d3Sopenharmony_ci{
1040fad3a1d3Sopenharmony_ci    BareVariadic {
1041fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1042fad3a1d3Sopenharmony_ci        name: (node.name).map(|it| (f.fold_ident((it).0), (it).1)),
1043fad3a1d3Sopenharmony_ci        dots: node.dots,
1044fad3a1d3Sopenharmony_ci        comma: node.comma,
1045fad3a1d3Sopenharmony_ci    }
1046fad3a1d3Sopenharmony_ci}
1047fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1048fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1049fad3a1d3Sopenharmony_cipub fn fold_bin_op<F>(f: &mut F, node: BinOp) -> BinOp
1050fad3a1d3Sopenharmony_ciwhere
1051fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1052fad3a1d3Sopenharmony_ci{
1053fad3a1d3Sopenharmony_ci    match node {
1054fad3a1d3Sopenharmony_ci        BinOp::Add(_binding_0) => BinOp::Add(_binding_0),
1055fad3a1d3Sopenharmony_ci        BinOp::Sub(_binding_0) => BinOp::Sub(_binding_0),
1056fad3a1d3Sopenharmony_ci        BinOp::Mul(_binding_0) => BinOp::Mul(_binding_0),
1057fad3a1d3Sopenharmony_ci        BinOp::Div(_binding_0) => BinOp::Div(_binding_0),
1058fad3a1d3Sopenharmony_ci        BinOp::Rem(_binding_0) => BinOp::Rem(_binding_0),
1059fad3a1d3Sopenharmony_ci        BinOp::And(_binding_0) => BinOp::And(_binding_0),
1060fad3a1d3Sopenharmony_ci        BinOp::Or(_binding_0) => BinOp::Or(_binding_0),
1061fad3a1d3Sopenharmony_ci        BinOp::BitXor(_binding_0) => BinOp::BitXor(_binding_0),
1062fad3a1d3Sopenharmony_ci        BinOp::BitAnd(_binding_0) => BinOp::BitAnd(_binding_0),
1063fad3a1d3Sopenharmony_ci        BinOp::BitOr(_binding_0) => BinOp::BitOr(_binding_0),
1064fad3a1d3Sopenharmony_ci        BinOp::Shl(_binding_0) => BinOp::Shl(_binding_0),
1065fad3a1d3Sopenharmony_ci        BinOp::Shr(_binding_0) => BinOp::Shr(_binding_0),
1066fad3a1d3Sopenharmony_ci        BinOp::Eq(_binding_0) => BinOp::Eq(_binding_0),
1067fad3a1d3Sopenharmony_ci        BinOp::Lt(_binding_0) => BinOp::Lt(_binding_0),
1068fad3a1d3Sopenharmony_ci        BinOp::Le(_binding_0) => BinOp::Le(_binding_0),
1069fad3a1d3Sopenharmony_ci        BinOp::Ne(_binding_0) => BinOp::Ne(_binding_0),
1070fad3a1d3Sopenharmony_ci        BinOp::Ge(_binding_0) => BinOp::Ge(_binding_0),
1071fad3a1d3Sopenharmony_ci        BinOp::Gt(_binding_0) => BinOp::Gt(_binding_0),
1072fad3a1d3Sopenharmony_ci        BinOp::AddAssign(_binding_0) => BinOp::AddAssign(_binding_0),
1073fad3a1d3Sopenharmony_ci        BinOp::SubAssign(_binding_0) => BinOp::SubAssign(_binding_0),
1074fad3a1d3Sopenharmony_ci        BinOp::MulAssign(_binding_0) => BinOp::MulAssign(_binding_0),
1075fad3a1d3Sopenharmony_ci        BinOp::DivAssign(_binding_0) => BinOp::DivAssign(_binding_0),
1076fad3a1d3Sopenharmony_ci        BinOp::RemAssign(_binding_0) => BinOp::RemAssign(_binding_0),
1077fad3a1d3Sopenharmony_ci        BinOp::BitXorAssign(_binding_0) => BinOp::BitXorAssign(_binding_0),
1078fad3a1d3Sopenharmony_ci        BinOp::BitAndAssign(_binding_0) => BinOp::BitAndAssign(_binding_0),
1079fad3a1d3Sopenharmony_ci        BinOp::BitOrAssign(_binding_0) => BinOp::BitOrAssign(_binding_0),
1080fad3a1d3Sopenharmony_ci        BinOp::ShlAssign(_binding_0) => BinOp::ShlAssign(_binding_0),
1081fad3a1d3Sopenharmony_ci        BinOp::ShrAssign(_binding_0) => BinOp::ShrAssign(_binding_0),
1082fad3a1d3Sopenharmony_ci    }
1083fad3a1d3Sopenharmony_ci}
1084fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1085fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1086fad3a1d3Sopenharmony_cipub fn fold_block<F>(f: &mut F, node: Block) -> Block
1087fad3a1d3Sopenharmony_ciwhere
1088fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1089fad3a1d3Sopenharmony_ci{
1090fad3a1d3Sopenharmony_ci    Block {
1091fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
1092fad3a1d3Sopenharmony_ci        stmts: FoldHelper::lift(node.stmts, |it| f.fold_stmt(it)),
1093fad3a1d3Sopenharmony_ci    }
1094fad3a1d3Sopenharmony_ci}
1095fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1096fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1097fad3a1d3Sopenharmony_cipub fn fold_bound_lifetimes<F>(f: &mut F, node: BoundLifetimes) -> BoundLifetimes
1098fad3a1d3Sopenharmony_ciwhere
1099fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1100fad3a1d3Sopenharmony_ci{
1101fad3a1d3Sopenharmony_ci    BoundLifetimes {
1102fad3a1d3Sopenharmony_ci        for_token: node.for_token,
1103fad3a1d3Sopenharmony_ci        lt_token: node.lt_token,
1104fad3a1d3Sopenharmony_ci        lifetimes: FoldHelper::lift(node.lifetimes, |it| f.fold_generic_param(it)),
1105fad3a1d3Sopenharmony_ci        gt_token: node.gt_token,
1106fad3a1d3Sopenharmony_ci    }
1107fad3a1d3Sopenharmony_ci}
1108fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1109fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1110fad3a1d3Sopenharmony_cipub fn fold_const_param<F>(f: &mut F, node: ConstParam) -> ConstParam
1111fad3a1d3Sopenharmony_ciwhere
1112fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1113fad3a1d3Sopenharmony_ci{
1114fad3a1d3Sopenharmony_ci    ConstParam {
1115fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1116fad3a1d3Sopenharmony_ci        const_token: node.const_token,
1117fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
1118fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1119fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
1120fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
1121fad3a1d3Sopenharmony_ci        default: (node.default).map(|it| f.fold_expr(it)),
1122fad3a1d3Sopenharmony_ci    }
1123fad3a1d3Sopenharmony_ci}
1124fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1125fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1126fad3a1d3Sopenharmony_cipub fn fold_constraint<F>(f: &mut F, node: Constraint) -> Constraint
1127fad3a1d3Sopenharmony_ciwhere
1128fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1129fad3a1d3Sopenharmony_ci{
1130fad3a1d3Sopenharmony_ci    Constraint {
1131fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
1132fad3a1d3Sopenharmony_ci        generics: (node.generics).map(|it| f.fold_angle_bracketed_generic_arguments(it)),
1133fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1134fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
1135fad3a1d3Sopenharmony_ci    }
1136fad3a1d3Sopenharmony_ci}
1137fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")]
1138fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
1139fad3a1d3Sopenharmony_cipub fn fold_data<F>(f: &mut F, node: Data) -> Data
1140fad3a1d3Sopenharmony_ciwhere
1141fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1142fad3a1d3Sopenharmony_ci{
1143fad3a1d3Sopenharmony_ci    match node {
1144fad3a1d3Sopenharmony_ci        Data::Struct(_binding_0) => Data::Struct(f.fold_data_struct(_binding_0)),
1145fad3a1d3Sopenharmony_ci        Data::Enum(_binding_0) => Data::Enum(f.fold_data_enum(_binding_0)),
1146fad3a1d3Sopenharmony_ci        Data::Union(_binding_0) => Data::Union(f.fold_data_union(_binding_0)),
1147fad3a1d3Sopenharmony_ci    }
1148fad3a1d3Sopenharmony_ci}
1149fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")]
1150fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
1151fad3a1d3Sopenharmony_cipub fn fold_data_enum<F>(f: &mut F, node: DataEnum) -> DataEnum
1152fad3a1d3Sopenharmony_ciwhere
1153fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1154fad3a1d3Sopenharmony_ci{
1155fad3a1d3Sopenharmony_ci    DataEnum {
1156fad3a1d3Sopenharmony_ci        enum_token: node.enum_token,
1157fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
1158fad3a1d3Sopenharmony_ci        variants: FoldHelper::lift(node.variants, |it| f.fold_variant(it)),
1159fad3a1d3Sopenharmony_ci    }
1160fad3a1d3Sopenharmony_ci}
1161fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")]
1162fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
1163fad3a1d3Sopenharmony_cipub fn fold_data_struct<F>(f: &mut F, node: DataStruct) -> DataStruct
1164fad3a1d3Sopenharmony_ciwhere
1165fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1166fad3a1d3Sopenharmony_ci{
1167fad3a1d3Sopenharmony_ci    DataStruct {
1168fad3a1d3Sopenharmony_ci        struct_token: node.struct_token,
1169fad3a1d3Sopenharmony_ci        fields: f.fold_fields(node.fields),
1170fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1171fad3a1d3Sopenharmony_ci    }
1172fad3a1d3Sopenharmony_ci}
1173fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")]
1174fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
1175fad3a1d3Sopenharmony_cipub fn fold_data_union<F>(f: &mut F, node: DataUnion) -> DataUnion
1176fad3a1d3Sopenharmony_ciwhere
1177fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1178fad3a1d3Sopenharmony_ci{
1179fad3a1d3Sopenharmony_ci    DataUnion {
1180fad3a1d3Sopenharmony_ci        union_token: node.union_token,
1181fad3a1d3Sopenharmony_ci        fields: f.fold_fields_named(node.fields),
1182fad3a1d3Sopenharmony_ci    }
1183fad3a1d3Sopenharmony_ci}
1184fad3a1d3Sopenharmony_ci#[cfg(feature = "derive")]
1185fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "derive")))]
1186fad3a1d3Sopenharmony_cipub fn fold_derive_input<F>(f: &mut F, node: DeriveInput) -> DeriveInput
1187fad3a1d3Sopenharmony_ciwhere
1188fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1189fad3a1d3Sopenharmony_ci{
1190fad3a1d3Sopenharmony_ci    DeriveInput {
1191fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1192fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
1193fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
1194fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
1195fad3a1d3Sopenharmony_ci        data: f.fold_data(node.data),
1196fad3a1d3Sopenharmony_ci    }
1197fad3a1d3Sopenharmony_ci}
1198fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1199fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1200fad3a1d3Sopenharmony_cipub fn fold_expr<F>(f: &mut F, node: Expr) -> Expr
1201fad3a1d3Sopenharmony_ciwhere
1202fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1203fad3a1d3Sopenharmony_ci{
1204fad3a1d3Sopenharmony_ci    match node {
1205fad3a1d3Sopenharmony_ci        Expr::Array(_binding_0) => Expr::Array(full!(f.fold_expr_array(_binding_0))),
1206fad3a1d3Sopenharmony_ci        Expr::Assign(_binding_0) => Expr::Assign(full!(f.fold_expr_assign(_binding_0))),
1207fad3a1d3Sopenharmony_ci        Expr::Async(_binding_0) => Expr::Async(full!(f.fold_expr_async(_binding_0))),
1208fad3a1d3Sopenharmony_ci        Expr::Await(_binding_0) => Expr::Await(full!(f.fold_expr_await(_binding_0))),
1209fad3a1d3Sopenharmony_ci        Expr::Binary(_binding_0) => Expr::Binary(f.fold_expr_binary(_binding_0)),
1210fad3a1d3Sopenharmony_ci        Expr::Block(_binding_0) => Expr::Block(full!(f.fold_expr_block(_binding_0))),
1211fad3a1d3Sopenharmony_ci        Expr::Break(_binding_0) => Expr::Break(full!(f.fold_expr_break(_binding_0))),
1212fad3a1d3Sopenharmony_ci        Expr::Call(_binding_0) => Expr::Call(f.fold_expr_call(_binding_0)),
1213fad3a1d3Sopenharmony_ci        Expr::Cast(_binding_0) => Expr::Cast(f.fold_expr_cast(_binding_0)),
1214fad3a1d3Sopenharmony_ci        Expr::Closure(_binding_0) => {
1215fad3a1d3Sopenharmony_ci            Expr::Closure(full!(f.fold_expr_closure(_binding_0)))
1216fad3a1d3Sopenharmony_ci        }
1217fad3a1d3Sopenharmony_ci        Expr::Const(_binding_0) => Expr::Const(full!(f.fold_expr_const(_binding_0))),
1218fad3a1d3Sopenharmony_ci        Expr::Continue(_binding_0) => {
1219fad3a1d3Sopenharmony_ci            Expr::Continue(full!(f.fold_expr_continue(_binding_0)))
1220fad3a1d3Sopenharmony_ci        }
1221fad3a1d3Sopenharmony_ci        Expr::Field(_binding_0) => Expr::Field(f.fold_expr_field(_binding_0)),
1222fad3a1d3Sopenharmony_ci        Expr::ForLoop(_binding_0) => {
1223fad3a1d3Sopenharmony_ci            Expr::ForLoop(full!(f.fold_expr_for_loop(_binding_0)))
1224fad3a1d3Sopenharmony_ci        }
1225fad3a1d3Sopenharmony_ci        Expr::Group(_binding_0) => Expr::Group(f.fold_expr_group(_binding_0)),
1226fad3a1d3Sopenharmony_ci        Expr::If(_binding_0) => Expr::If(full!(f.fold_expr_if(_binding_0))),
1227fad3a1d3Sopenharmony_ci        Expr::Index(_binding_0) => Expr::Index(f.fold_expr_index(_binding_0)),
1228fad3a1d3Sopenharmony_ci        Expr::Infer(_binding_0) => Expr::Infer(full!(f.fold_expr_infer(_binding_0))),
1229fad3a1d3Sopenharmony_ci        Expr::Let(_binding_0) => Expr::Let(full!(f.fold_expr_let(_binding_0))),
1230fad3a1d3Sopenharmony_ci        Expr::Lit(_binding_0) => Expr::Lit(f.fold_expr_lit(_binding_0)),
1231fad3a1d3Sopenharmony_ci        Expr::Loop(_binding_0) => Expr::Loop(full!(f.fold_expr_loop(_binding_0))),
1232fad3a1d3Sopenharmony_ci        Expr::Macro(_binding_0) => Expr::Macro(f.fold_expr_macro(_binding_0)),
1233fad3a1d3Sopenharmony_ci        Expr::Match(_binding_0) => Expr::Match(full!(f.fold_expr_match(_binding_0))),
1234fad3a1d3Sopenharmony_ci        Expr::MethodCall(_binding_0) => {
1235fad3a1d3Sopenharmony_ci            Expr::MethodCall(f.fold_expr_method_call(_binding_0))
1236fad3a1d3Sopenharmony_ci        }
1237fad3a1d3Sopenharmony_ci        Expr::Paren(_binding_0) => Expr::Paren(f.fold_expr_paren(_binding_0)),
1238fad3a1d3Sopenharmony_ci        Expr::Path(_binding_0) => Expr::Path(f.fold_expr_path(_binding_0)),
1239fad3a1d3Sopenharmony_ci        Expr::Range(_binding_0) => Expr::Range(full!(f.fold_expr_range(_binding_0))),
1240fad3a1d3Sopenharmony_ci        Expr::Reference(_binding_0) => Expr::Reference(f.fold_expr_reference(_binding_0)),
1241fad3a1d3Sopenharmony_ci        Expr::Repeat(_binding_0) => Expr::Repeat(full!(f.fold_expr_repeat(_binding_0))),
1242fad3a1d3Sopenharmony_ci        Expr::Return(_binding_0) => Expr::Return(full!(f.fold_expr_return(_binding_0))),
1243fad3a1d3Sopenharmony_ci        Expr::Struct(_binding_0) => Expr::Struct(f.fold_expr_struct(_binding_0)),
1244fad3a1d3Sopenharmony_ci        Expr::Try(_binding_0) => Expr::Try(full!(f.fold_expr_try(_binding_0))),
1245fad3a1d3Sopenharmony_ci        Expr::TryBlock(_binding_0) => {
1246fad3a1d3Sopenharmony_ci            Expr::TryBlock(full!(f.fold_expr_try_block(_binding_0)))
1247fad3a1d3Sopenharmony_ci        }
1248fad3a1d3Sopenharmony_ci        Expr::Tuple(_binding_0) => Expr::Tuple(full!(f.fold_expr_tuple(_binding_0))),
1249fad3a1d3Sopenharmony_ci        Expr::Unary(_binding_0) => Expr::Unary(f.fold_expr_unary(_binding_0)),
1250fad3a1d3Sopenharmony_ci        Expr::Unsafe(_binding_0) => Expr::Unsafe(full!(f.fold_expr_unsafe(_binding_0))),
1251fad3a1d3Sopenharmony_ci        Expr::Verbatim(_binding_0) => Expr::Verbatim(_binding_0),
1252fad3a1d3Sopenharmony_ci        Expr::While(_binding_0) => Expr::While(full!(f.fold_expr_while(_binding_0))),
1253fad3a1d3Sopenharmony_ci        Expr::Yield(_binding_0) => Expr::Yield(full!(f.fold_expr_yield(_binding_0))),
1254fad3a1d3Sopenharmony_ci    }
1255fad3a1d3Sopenharmony_ci}
1256fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1257fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1258fad3a1d3Sopenharmony_cipub fn fold_expr_array<F>(f: &mut F, node: ExprArray) -> ExprArray
1259fad3a1d3Sopenharmony_ciwhere
1260fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1261fad3a1d3Sopenharmony_ci{
1262fad3a1d3Sopenharmony_ci    ExprArray {
1263fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1264fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
1265fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_expr(it)),
1266fad3a1d3Sopenharmony_ci    }
1267fad3a1d3Sopenharmony_ci}
1268fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1269fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1270fad3a1d3Sopenharmony_cipub fn fold_expr_assign<F>(f: &mut F, node: ExprAssign) -> ExprAssign
1271fad3a1d3Sopenharmony_ciwhere
1272fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1273fad3a1d3Sopenharmony_ci{
1274fad3a1d3Sopenharmony_ci    ExprAssign {
1275fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1276fad3a1d3Sopenharmony_ci        left: Box::new(f.fold_expr(*node.left)),
1277fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
1278fad3a1d3Sopenharmony_ci        right: Box::new(f.fold_expr(*node.right)),
1279fad3a1d3Sopenharmony_ci    }
1280fad3a1d3Sopenharmony_ci}
1281fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1282fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1283fad3a1d3Sopenharmony_cipub fn fold_expr_async<F>(f: &mut F, node: ExprAsync) -> ExprAsync
1284fad3a1d3Sopenharmony_ciwhere
1285fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1286fad3a1d3Sopenharmony_ci{
1287fad3a1d3Sopenharmony_ci    ExprAsync {
1288fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1289fad3a1d3Sopenharmony_ci        async_token: node.async_token,
1290fad3a1d3Sopenharmony_ci        capture: node.capture,
1291fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
1292fad3a1d3Sopenharmony_ci    }
1293fad3a1d3Sopenharmony_ci}
1294fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1295fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1296fad3a1d3Sopenharmony_cipub fn fold_expr_await<F>(f: &mut F, node: ExprAwait) -> ExprAwait
1297fad3a1d3Sopenharmony_ciwhere
1298fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1299fad3a1d3Sopenharmony_ci{
1300fad3a1d3Sopenharmony_ci    ExprAwait {
1301fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1302fad3a1d3Sopenharmony_ci        base: Box::new(f.fold_expr(*node.base)),
1303fad3a1d3Sopenharmony_ci        dot_token: node.dot_token,
1304fad3a1d3Sopenharmony_ci        await_token: node.await_token,
1305fad3a1d3Sopenharmony_ci    }
1306fad3a1d3Sopenharmony_ci}
1307fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1308fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1309fad3a1d3Sopenharmony_cipub fn fold_expr_binary<F>(f: &mut F, node: ExprBinary) -> ExprBinary
1310fad3a1d3Sopenharmony_ciwhere
1311fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1312fad3a1d3Sopenharmony_ci{
1313fad3a1d3Sopenharmony_ci    ExprBinary {
1314fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1315fad3a1d3Sopenharmony_ci        left: Box::new(f.fold_expr(*node.left)),
1316fad3a1d3Sopenharmony_ci        op: f.fold_bin_op(node.op),
1317fad3a1d3Sopenharmony_ci        right: Box::new(f.fold_expr(*node.right)),
1318fad3a1d3Sopenharmony_ci    }
1319fad3a1d3Sopenharmony_ci}
1320fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1321fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1322fad3a1d3Sopenharmony_cipub fn fold_expr_block<F>(f: &mut F, node: ExprBlock) -> ExprBlock
1323fad3a1d3Sopenharmony_ciwhere
1324fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1325fad3a1d3Sopenharmony_ci{
1326fad3a1d3Sopenharmony_ci    ExprBlock {
1327fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1328fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_label(it)),
1329fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
1330fad3a1d3Sopenharmony_ci    }
1331fad3a1d3Sopenharmony_ci}
1332fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1333fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1334fad3a1d3Sopenharmony_cipub fn fold_expr_break<F>(f: &mut F, node: ExprBreak) -> ExprBreak
1335fad3a1d3Sopenharmony_ciwhere
1336fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1337fad3a1d3Sopenharmony_ci{
1338fad3a1d3Sopenharmony_ci    ExprBreak {
1339fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1340fad3a1d3Sopenharmony_ci        break_token: node.break_token,
1341fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_lifetime(it)),
1342fad3a1d3Sopenharmony_ci        expr: (node.expr).map(|it| Box::new(f.fold_expr(*it))),
1343fad3a1d3Sopenharmony_ci    }
1344fad3a1d3Sopenharmony_ci}
1345fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1346fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1347fad3a1d3Sopenharmony_cipub fn fold_expr_call<F>(f: &mut F, node: ExprCall) -> ExprCall
1348fad3a1d3Sopenharmony_ciwhere
1349fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1350fad3a1d3Sopenharmony_ci{
1351fad3a1d3Sopenharmony_ci    ExprCall {
1352fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1353fad3a1d3Sopenharmony_ci        func: Box::new(f.fold_expr(*node.func)),
1354fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
1355fad3a1d3Sopenharmony_ci        args: FoldHelper::lift(node.args, |it| f.fold_expr(it)),
1356fad3a1d3Sopenharmony_ci    }
1357fad3a1d3Sopenharmony_ci}
1358fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1359fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1360fad3a1d3Sopenharmony_cipub fn fold_expr_cast<F>(f: &mut F, node: ExprCast) -> ExprCast
1361fad3a1d3Sopenharmony_ciwhere
1362fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1363fad3a1d3Sopenharmony_ci{
1364fad3a1d3Sopenharmony_ci    ExprCast {
1365fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1366fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1367fad3a1d3Sopenharmony_ci        as_token: node.as_token,
1368fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
1369fad3a1d3Sopenharmony_ci    }
1370fad3a1d3Sopenharmony_ci}
1371fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1372fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1373fad3a1d3Sopenharmony_cipub fn fold_expr_closure<F>(f: &mut F, node: ExprClosure) -> ExprClosure
1374fad3a1d3Sopenharmony_ciwhere
1375fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1376fad3a1d3Sopenharmony_ci{
1377fad3a1d3Sopenharmony_ci    ExprClosure {
1378fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1379fad3a1d3Sopenharmony_ci        lifetimes: (node.lifetimes).map(|it| f.fold_bound_lifetimes(it)),
1380fad3a1d3Sopenharmony_ci        constness: node.constness,
1381fad3a1d3Sopenharmony_ci        movability: node.movability,
1382fad3a1d3Sopenharmony_ci        asyncness: node.asyncness,
1383fad3a1d3Sopenharmony_ci        capture: node.capture,
1384fad3a1d3Sopenharmony_ci        or1_token: node.or1_token,
1385fad3a1d3Sopenharmony_ci        inputs: FoldHelper::lift(node.inputs, |it| f.fold_pat(it)),
1386fad3a1d3Sopenharmony_ci        or2_token: node.or2_token,
1387fad3a1d3Sopenharmony_ci        output: f.fold_return_type(node.output),
1388fad3a1d3Sopenharmony_ci        body: Box::new(f.fold_expr(*node.body)),
1389fad3a1d3Sopenharmony_ci    }
1390fad3a1d3Sopenharmony_ci}
1391fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1392fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1393fad3a1d3Sopenharmony_cipub fn fold_expr_const<F>(f: &mut F, node: ExprConst) -> ExprConst
1394fad3a1d3Sopenharmony_ciwhere
1395fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1396fad3a1d3Sopenharmony_ci{
1397fad3a1d3Sopenharmony_ci    ExprConst {
1398fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1399fad3a1d3Sopenharmony_ci        const_token: node.const_token,
1400fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
1401fad3a1d3Sopenharmony_ci    }
1402fad3a1d3Sopenharmony_ci}
1403fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1404fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1405fad3a1d3Sopenharmony_cipub fn fold_expr_continue<F>(f: &mut F, node: ExprContinue) -> ExprContinue
1406fad3a1d3Sopenharmony_ciwhere
1407fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1408fad3a1d3Sopenharmony_ci{
1409fad3a1d3Sopenharmony_ci    ExprContinue {
1410fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1411fad3a1d3Sopenharmony_ci        continue_token: node.continue_token,
1412fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_lifetime(it)),
1413fad3a1d3Sopenharmony_ci    }
1414fad3a1d3Sopenharmony_ci}
1415fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1416fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1417fad3a1d3Sopenharmony_cipub fn fold_expr_field<F>(f: &mut F, node: ExprField) -> ExprField
1418fad3a1d3Sopenharmony_ciwhere
1419fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1420fad3a1d3Sopenharmony_ci{
1421fad3a1d3Sopenharmony_ci    ExprField {
1422fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1423fad3a1d3Sopenharmony_ci        base: Box::new(f.fold_expr(*node.base)),
1424fad3a1d3Sopenharmony_ci        dot_token: node.dot_token,
1425fad3a1d3Sopenharmony_ci        member: f.fold_member(node.member),
1426fad3a1d3Sopenharmony_ci    }
1427fad3a1d3Sopenharmony_ci}
1428fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1429fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1430fad3a1d3Sopenharmony_cipub fn fold_expr_for_loop<F>(f: &mut F, node: ExprForLoop) -> ExprForLoop
1431fad3a1d3Sopenharmony_ciwhere
1432fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1433fad3a1d3Sopenharmony_ci{
1434fad3a1d3Sopenharmony_ci    ExprForLoop {
1435fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1436fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_label(it)),
1437fad3a1d3Sopenharmony_ci        for_token: node.for_token,
1438fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
1439fad3a1d3Sopenharmony_ci        in_token: node.in_token,
1440fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1441fad3a1d3Sopenharmony_ci        body: f.fold_block(node.body),
1442fad3a1d3Sopenharmony_ci    }
1443fad3a1d3Sopenharmony_ci}
1444fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1445fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1446fad3a1d3Sopenharmony_cipub fn fold_expr_group<F>(f: &mut F, node: ExprGroup) -> ExprGroup
1447fad3a1d3Sopenharmony_ciwhere
1448fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1449fad3a1d3Sopenharmony_ci{
1450fad3a1d3Sopenharmony_ci    ExprGroup {
1451fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1452fad3a1d3Sopenharmony_ci        group_token: node.group_token,
1453fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1454fad3a1d3Sopenharmony_ci    }
1455fad3a1d3Sopenharmony_ci}
1456fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1457fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1458fad3a1d3Sopenharmony_cipub fn fold_expr_if<F>(f: &mut F, node: ExprIf) -> ExprIf
1459fad3a1d3Sopenharmony_ciwhere
1460fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1461fad3a1d3Sopenharmony_ci{
1462fad3a1d3Sopenharmony_ci    ExprIf {
1463fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1464fad3a1d3Sopenharmony_ci        if_token: node.if_token,
1465fad3a1d3Sopenharmony_ci        cond: Box::new(f.fold_expr(*node.cond)),
1466fad3a1d3Sopenharmony_ci        then_branch: f.fold_block(node.then_branch),
1467fad3a1d3Sopenharmony_ci        else_branch: (node.else_branch)
1468fad3a1d3Sopenharmony_ci            .map(|it| ((it).0, Box::new(f.fold_expr(*(it).1)))),
1469fad3a1d3Sopenharmony_ci    }
1470fad3a1d3Sopenharmony_ci}
1471fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1472fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1473fad3a1d3Sopenharmony_cipub fn fold_expr_index<F>(f: &mut F, node: ExprIndex) -> ExprIndex
1474fad3a1d3Sopenharmony_ciwhere
1475fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1476fad3a1d3Sopenharmony_ci{
1477fad3a1d3Sopenharmony_ci    ExprIndex {
1478fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1479fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1480fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
1481fad3a1d3Sopenharmony_ci        index: Box::new(f.fold_expr(*node.index)),
1482fad3a1d3Sopenharmony_ci    }
1483fad3a1d3Sopenharmony_ci}
1484fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1485fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1486fad3a1d3Sopenharmony_cipub fn fold_expr_infer<F>(f: &mut F, node: ExprInfer) -> ExprInfer
1487fad3a1d3Sopenharmony_ciwhere
1488fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1489fad3a1d3Sopenharmony_ci{
1490fad3a1d3Sopenharmony_ci    ExprInfer {
1491fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1492fad3a1d3Sopenharmony_ci        underscore_token: node.underscore_token,
1493fad3a1d3Sopenharmony_ci    }
1494fad3a1d3Sopenharmony_ci}
1495fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1496fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1497fad3a1d3Sopenharmony_cipub fn fold_expr_let<F>(f: &mut F, node: ExprLet) -> ExprLet
1498fad3a1d3Sopenharmony_ciwhere
1499fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1500fad3a1d3Sopenharmony_ci{
1501fad3a1d3Sopenharmony_ci    ExprLet {
1502fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1503fad3a1d3Sopenharmony_ci        let_token: node.let_token,
1504fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
1505fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
1506fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1507fad3a1d3Sopenharmony_ci    }
1508fad3a1d3Sopenharmony_ci}
1509fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1510fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1511fad3a1d3Sopenharmony_cipub fn fold_expr_lit<F>(f: &mut F, node: ExprLit) -> ExprLit
1512fad3a1d3Sopenharmony_ciwhere
1513fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1514fad3a1d3Sopenharmony_ci{
1515fad3a1d3Sopenharmony_ci    ExprLit {
1516fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1517fad3a1d3Sopenharmony_ci        lit: f.fold_lit(node.lit),
1518fad3a1d3Sopenharmony_ci    }
1519fad3a1d3Sopenharmony_ci}
1520fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1521fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1522fad3a1d3Sopenharmony_cipub fn fold_expr_loop<F>(f: &mut F, node: ExprLoop) -> ExprLoop
1523fad3a1d3Sopenharmony_ciwhere
1524fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1525fad3a1d3Sopenharmony_ci{
1526fad3a1d3Sopenharmony_ci    ExprLoop {
1527fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1528fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_label(it)),
1529fad3a1d3Sopenharmony_ci        loop_token: node.loop_token,
1530fad3a1d3Sopenharmony_ci        body: f.fold_block(node.body),
1531fad3a1d3Sopenharmony_ci    }
1532fad3a1d3Sopenharmony_ci}
1533fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1534fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1535fad3a1d3Sopenharmony_cipub fn fold_expr_macro<F>(f: &mut F, node: ExprMacro) -> ExprMacro
1536fad3a1d3Sopenharmony_ciwhere
1537fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1538fad3a1d3Sopenharmony_ci{
1539fad3a1d3Sopenharmony_ci    ExprMacro {
1540fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1541fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
1542fad3a1d3Sopenharmony_ci    }
1543fad3a1d3Sopenharmony_ci}
1544fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1545fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1546fad3a1d3Sopenharmony_cipub fn fold_expr_match<F>(f: &mut F, node: ExprMatch) -> ExprMatch
1547fad3a1d3Sopenharmony_ciwhere
1548fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1549fad3a1d3Sopenharmony_ci{
1550fad3a1d3Sopenharmony_ci    ExprMatch {
1551fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1552fad3a1d3Sopenharmony_ci        match_token: node.match_token,
1553fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1554fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
1555fad3a1d3Sopenharmony_ci        arms: FoldHelper::lift(node.arms, |it| f.fold_arm(it)),
1556fad3a1d3Sopenharmony_ci    }
1557fad3a1d3Sopenharmony_ci}
1558fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1559fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1560fad3a1d3Sopenharmony_cipub fn fold_expr_method_call<F>(f: &mut F, node: ExprMethodCall) -> ExprMethodCall
1561fad3a1d3Sopenharmony_ciwhere
1562fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1563fad3a1d3Sopenharmony_ci{
1564fad3a1d3Sopenharmony_ci    ExprMethodCall {
1565fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1566fad3a1d3Sopenharmony_ci        receiver: Box::new(f.fold_expr(*node.receiver)),
1567fad3a1d3Sopenharmony_ci        dot_token: node.dot_token,
1568fad3a1d3Sopenharmony_ci        method: f.fold_ident(node.method),
1569fad3a1d3Sopenharmony_ci        turbofish: (node.turbofish)
1570fad3a1d3Sopenharmony_ci            .map(|it| f.fold_angle_bracketed_generic_arguments(it)),
1571fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
1572fad3a1d3Sopenharmony_ci        args: FoldHelper::lift(node.args, |it| f.fold_expr(it)),
1573fad3a1d3Sopenharmony_ci    }
1574fad3a1d3Sopenharmony_ci}
1575fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1576fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1577fad3a1d3Sopenharmony_cipub fn fold_expr_paren<F>(f: &mut F, node: ExprParen) -> ExprParen
1578fad3a1d3Sopenharmony_ciwhere
1579fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1580fad3a1d3Sopenharmony_ci{
1581fad3a1d3Sopenharmony_ci    ExprParen {
1582fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1583fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
1584fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1585fad3a1d3Sopenharmony_ci    }
1586fad3a1d3Sopenharmony_ci}
1587fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1588fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1589fad3a1d3Sopenharmony_cipub fn fold_expr_path<F>(f: &mut F, node: ExprPath) -> ExprPath
1590fad3a1d3Sopenharmony_ciwhere
1591fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1592fad3a1d3Sopenharmony_ci{
1593fad3a1d3Sopenharmony_ci    ExprPath {
1594fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1595fad3a1d3Sopenharmony_ci        qself: (node.qself).map(|it| f.fold_qself(it)),
1596fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
1597fad3a1d3Sopenharmony_ci    }
1598fad3a1d3Sopenharmony_ci}
1599fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1600fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1601fad3a1d3Sopenharmony_cipub fn fold_expr_range<F>(f: &mut F, node: ExprRange) -> ExprRange
1602fad3a1d3Sopenharmony_ciwhere
1603fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1604fad3a1d3Sopenharmony_ci{
1605fad3a1d3Sopenharmony_ci    ExprRange {
1606fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1607fad3a1d3Sopenharmony_ci        start: (node.start).map(|it| Box::new(f.fold_expr(*it))),
1608fad3a1d3Sopenharmony_ci        limits: f.fold_range_limits(node.limits),
1609fad3a1d3Sopenharmony_ci        end: (node.end).map(|it| Box::new(f.fold_expr(*it))),
1610fad3a1d3Sopenharmony_ci    }
1611fad3a1d3Sopenharmony_ci}
1612fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1613fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1614fad3a1d3Sopenharmony_cipub fn fold_expr_reference<F>(f: &mut F, node: ExprReference) -> ExprReference
1615fad3a1d3Sopenharmony_ciwhere
1616fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1617fad3a1d3Sopenharmony_ci{
1618fad3a1d3Sopenharmony_ci    ExprReference {
1619fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1620fad3a1d3Sopenharmony_ci        and_token: node.and_token,
1621fad3a1d3Sopenharmony_ci        mutability: node.mutability,
1622fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1623fad3a1d3Sopenharmony_ci    }
1624fad3a1d3Sopenharmony_ci}
1625fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1626fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1627fad3a1d3Sopenharmony_cipub fn fold_expr_repeat<F>(f: &mut F, node: ExprRepeat) -> ExprRepeat
1628fad3a1d3Sopenharmony_ciwhere
1629fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1630fad3a1d3Sopenharmony_ci{
1631fad3a1d3Sopenharmony_ci    ExprRepeat {
1632fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1633fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
1634fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1635fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1636fad3a1d3Sopenharmony_ci        len: Box::new(f.fold_expr(*node.len)),
1637fad3a1d3Sopenharmony_ci    }
1638fad3a1d3Sopenharmony_ci}
1639fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1640fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1641fad3a1d3Sopenharmony_cipub fn fold_expr_return<F>(f: &mut F, node: ExprReturn) -> ExprReturn
1642fad3a1d3Sopenharmony_ciwhere
1643fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1644fad3a1d3Sopenharmony_ci{
1645fad3a1d3Sopenharmony_ci    ExprReturn {
1646fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1647fad3a1d3Sopenharmony_ci        return_token: node.return_token,
1648fad3a1d3Sopenharmony_ci        expr: (node.expr).map(|it| Box::new(f.fold_expr(*it))),
1649fad3a1d3Sopenharmony_ci    }
1650fad3a1d3Sopenharmony_ci}
1651fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1652fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1653fad3a1d3Sopenharmony_cipub fn fold_expr_struct<F>(f: &mut F, node: ExprStruct) -> ExprStruct
1654fad3a1d3Sopenharmony_ciwhere
1655fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1656fad3a1d3Sopenharmony_ci{
1657fad3a1d3Sopenharmony_ci    ExprStruct {
1658fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1659fad3a1d3Sopenharmony_ci        qself: (node.qself).map(|it| f.fold_qself(it)),
1660fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
1661fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
1662fad3a1d3Sopenharmony_ci        fields: FoldHelper::lift(node.fields, |it| f.fold_field_value(it)),
1663fad3a1d3Sopenharmony_ci        dot2_token: node.dot2_token,
1664fad3a1d3Sopenharmony_ci        rest: (node.rest).map(|it| Box::new(f.fold_expr(*it))),
1665fad3a1d3Sopenharmony_ci    }
1666fad3a1d3Sopenharmony_ci}
1667fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1668fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1669fad3a1d3Sopenharmony_cipub fn fold_expr_try<F>(f: &mut F, node: ExprTry) -> ExprTry
1670fad3a1d3Sopenharmony_ciwhere
1671fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1672fad3a1d3Sopenharmony_ci{
1673fad3a1d3Sopenharmony_ci    ExprTry {
1674fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1675fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1676fad3a1d3Sopenharmony_ci        question_token: node.question_token,
1677fad3a1d3Sopenharmony_ci    }
1678fad3a1d3Sopenharmony_ci}
1679fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1680fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1681fad3a1d3Sopenharmony_cipub fn fold_expr_try_block<F>(f: &mut F, node: ExprTryBlock) -> ExprTryBlock
1682fad3a1d3Sopenharmony_ciwhere
1683fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1684fad3a1d3Sopenharmony_ci{
1685fad3a1d3Sopenharmony_ci    ExprTryBlock {
1686fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1687fad3a1d3Sopenharmony_ci        try_token: node.try_token,
1688fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
1689fad3a1d3Sopenharmony_ci    }
1690fad3a1d3Sopenharmony_ci}
1691fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1692fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1693fad3a1d3Sopenharmony_cipub fn fold_expr_tuple<F>(f: &mut F, node: ExprTuple) -> ExprTuple
1694fad3a1d3Sopenharmony_ciwhere
1695fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1696fad3a1d3Sopenharmony_ci{
1697fad3a1d3Sopenharmony_ci    ExprTuple {
1698fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1699fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
1700fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_expr(it)),
1701fad3a1d3Sopenharmony_ci    }
1702fad3a1d3Sopenharmony_ci}
1703fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1704fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1705fad3a1d3Sopenharmony_cipub fn fold_expr_unary<F>(f: &mut F, node: ExprUnary) -> ExprUnary
1706fad3a1d3Sopenharmony_ciwhere
1707fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1708fad3a1d3Sopenharmony_ci{
1709fad3a1d3Sopenharmony_ci    ExprUnary {
1710fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1711fad3a1d3Sopenharmony_ci        op: f.fold_un_op(node.op),
1712fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
1713fad3a1d3Sopenharmony_ci    }
1714fad3a1d3Sopenharmony_ci}
1715fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1716fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1717fad3a1d3Sopenharmony_cipub fn fold_expr_unsafe<F>(f: &mut F, node: ExprUnsafe) -> ExprUnsafe
1718fad3a1d3Sopenharmony_ciwhere
1719fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1720fad3a1d3Sopenharmony_ci{
1721fad3a1d3Sopenharmony_ci    ExprUnsafe {
1722fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1723fad3a1d3Sopenharmony_ci        unsafe_token: node.unsafe_token,
1724fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
1725fad3a1d3Sopenharmony_ci    }
1726fad3a1d3Sopenharmony_ci}
1727fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1728fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1729fad3a1d3Sopenharmony_cipub fn fold_expr_while<F>(f: &mut F, node: ExprWhile) -> ExprWhile
1730fad3a1d3Sopenharmony_ciwhere
1731fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1732fad3a1d3Sopenharmony_ci{
1733fad3a1d3Sopenharmony_ci    ExprWhile {
1734fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1735fad3a1d3Sopenharmony_ci        label: (node.label).map(|it| f.fold_label(it)),
1736fad3a1d3Sopenharmony_ci        while_token: node.while_token,
1737fad3a1d3Sopenharmony_ci        cond: Box::new(f.fold_expr(*node.cond)),
1738fad3a1d3Sopenharmony_ci        body: f.fold_block(node.body),
1739fad3a1d3Sopenharmony_ci    }
1740fad3a1d3Sopenharmony_ci}
1741fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1742fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1743fad3a1d3Sopenharmony_cipub fn fold_expr_yield<F>(f: &mut F, node: ExprYield) -> ExprYield
1744fad3a1d3Sopenharmony_ciwhere
1745fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1746fad3a1d3Sopenharmony_ci{
1747fad3a1d3Sopenharmony_ci    ExprYield {
1748fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1749fad3a1d3Sopenharmony_ci        yield_token: node.yield_token,
1750fad3a1d3Sopenharmony_ci        expr: (node.expr).map(|it| Box::new(f.fold_expr(*it))),
1751fad3a1d3Sopenharmony_ci    }
1752fad3a1d3Sopenharmony_ci}
1753fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1754fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1755fad3a1d3Sopenharmony_cipub fn fold_field<F>(f: &mut F, node: Field) -> Field
1756fad3a1d3Sopenharmony_ciwhere
1757fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1758fad3a1d3Sopenharmony_ci{
1759fad3a1d3Sopenharmony_ci    Field {
1760fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1761fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
1762fad3a1d3Sopenharmony_ci        mutability: f.fold_field_mutability(node.mutability),
1763fad3a1d3Sopenharmony_ci        ident: (node.ident).map(|it| f.fold_ident(it)),
1764fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1765fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
1766fad3a1d3Sopenharmony_ci    }
1767fad3a1d3Sopenharmony_ci}
1768fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1769fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1770fad3a1d3Sopenharmony_cipub fn fold_field_mutability<F>(f: &mut F, node: FieldMutability) -> FieldMutability
1771fad3a1d3Sopenharmony_ciwhere
1772fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1773fad3a1d3Sopenharmony_ci{
1774fad3a1d3Sopenharmony_ci    match node {
1775fad3a1d3Sopenharmony_ci        FieldMutability::None => FieldMutability::None,
1776fad3a1d3Sopenharmony_ci    }
1777fad3a1d3Sopenharmony_ci}
1778fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1779fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1780fad3a1d3Sopenharmony_cipub fn fold_field_pat<F>(f: &mut F, node: FieldPat) -> FieldPat
1781fad3a1d3Sopenharmony_ciwhere
1782fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1783fad3a1d3Sopenharmony_ci{
1784fad3a1d3Sopenharmony_ci    FieldPat {
1785fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1786fad3a1d3Sopenharmony_ci        member: f.fold_member(node.member),
1787fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1788fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
1789fad3a1d3Sopenharmony_ci    }
1790fad3a1d3Sopenharmony_ci}
1791fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1792fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1793fad3a1d3Sopenharmony_cipub fn fold_field_value<F>(f: &mut F, node: FieldValue) -> FieldValue
1794fad3a1d3Sopenharmony_ciwhere
1795fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1796fad3a1d3Sopenharmony_ci{
1797fad3a1d3Sopenharmony_ci    FieldValue {
1798fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1799fad3a1d3Sopenharmony_ci        member: f.fold_member(node.member),
1800fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1801fad3a1d3Sopenharmony_ci        expr: f.fold_expr(node.expr),
1802fad3a1d3Sopenharmony_ci    }
1803fad3a1d3Sopenharmony_ci}
1804fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1805fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1806fad3a1d3Sopenharmony_cipub fn fold_fields<F>(f: &mut F, node: Fields) -> Fields
1807fad3a1d3Sopenharmony_ciwhere
1808fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1809fad3a1d3Sopenharmony_ci{
1810fad3a1d3Sopenharmony_ci    match node {
1811fad3a1d3Sopenharmony_ci        Fields::Named(_binding_0) => Fields::Named(f.fold_fields_named(_binding_0)),
1812fad3a1d3Sopenharmony_ci        Fields::Unnamed(_binding_0) => Fields::Unnamed(f.fold_fields_unnamed(_binding_0)),
1813fad3a1d3Sopenharmony_ci        Fields::Unit => Fields::Unit,
1814fad3a1d3Sopenharmony_ci    }
1815fad3a1d3Sopenharmony_ci}
1816fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1817fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1818fad3a1d3Sopenharmony_cipub fn fold_fields_named<F>(f: &mut F, node: FieldsNamed) -> FieldsNamed
1819fad3a1d3Sopenharmony_ciwhere
1820fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1821fad3a1d3Sopenharmony_ci{
1822fad3a1d3Sopenharmony_ci    FieldsNamed {
1823fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
1824fad3a1d3Sopenharmony_ci        named: FoldHelper::lift(node.named, |it| f.fold_field(it)),
1825fad3a1d3Sopenharmony_ci    }
1826fad3a1d3Sopenharmony_ci}
1827fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1828fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1829fad3a1d3Sopenharmony_cipub fn fold_fields_unnamed<F>(f: &mut F, node: FieldsUnnamed) -> FieldsUnnamed
1830fad3a1d3Sopenharmony_ciwhere
1831fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1832fad3a1d3Sopenharmony_ci{
1833fad3a1d3Sopenharmony_ci    FieldsUnnamed {
1834fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
1835fad3a1d3Sopenharmony_ci        unnamed: FoldHelper::lift(node.unnamed, |it| f.fold_field(it)),
1836fad3a1d3Sopenharmony_ci    }
1837fad3a1d3Sopenharmony_ci}
1838fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1839fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1840fad3a1d3Sopenharmony_cipub fn fold_file<F>(f: &mut F, node: File) -> File
1841fad3a1d3Sopenharmony_ciwhere
1842fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1843fad3a1d3Sopenharmony_ci{
1844fad3a1d3Sopenharmony_ci    File {
1845fad3a1d3Sopenharmony_ci        shebang: node.shebang,
1846fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1847fad3a1d3Sopenharmony_ci        items: FoldHelper::lift(node.items, |it| f.fold_item(it)),
1848fad3a1d3Sopenharmony_ci    }
1849fad3a1d3Sopenharmony_ci}
1850fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1851fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1852fad3a1d3Sopenharmony_cipub fn fold_fn_arg<F>(f: &mut F, node: FnArg) -> FnArg
1853fad3a1d3Sopenharmony_ciwhere
1854fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1855fad3a1d3Sopenharmony_ci{
1856fad3a1d3Sopenharmony_ci    match node {
1857fad3a1d3Sopenharmony_ci        FnArg::Receiver(_binding_0) => FnArg::Receiver(f.fold_receiver(_binding_0)),
1858fad3a1d3Sopenharmony_ci        FnArg::Typed(_binding_0) => FnArg::Typed(f.fold_pat_type(_binding_0)),
1859fad3a1d3Sopenharmony_ci    }
1860fad3a1d3Sopenharmony_ci}
1861fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1862fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1863fad3a1d3Sopenharmony_cipub fn fold_foreign_item<F>(f: &mut F, node: ForeignItem) -> ForeignItem
1864fad3a1d3Sopenharmony_ciwhere
1865fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1866fad3a1d3Sopenharmony_ci{
1867fad3a1d3Sopenharmony_ci    match node {
1868fad3a1d3Sopenharmony_ci        ForeignItem::Fn(_binding_0) => {
1869fad3a1d3Sopenharmony_ci            ForeignItem::Fn(f.fold_foreign_item_fn(_binding_0))
1870fad3a1d3Sopenharmony_ci        }
1871fad3a1d3Sopenharmony_ci        ForeignItem::Static(_binding_0) => {
1872fad3a1d3Sopenharmony_ci            ForeignItem::Static(f.fold_foreign_item_static(_binding_0))
1873fad3a1d3Sopenharmony_ci        }
1874fad3a1d3Sopenharmony_ci        ForeignItem::Type(_binding_0) => {
1875fad3a1d3Sopenharmony_ci            ForeignItem::Type(f.fold_foreign_item_type(_binding_0))
1876fad3a1d3Sopenharmony_ci        }
1877fad3a1d3Sopenharmony_ci        ForeignItem::Macro(_binding_0) => {
1878fad3a1d3Sopenharmony_ci            ForeignItem::Macro(f.fold_foreign_item_macro(_binding_0))
1879fad3a1d3Sopenharmony_ci        }
1880fad3a1d3Sopenharmony_ci        ForeignItem::Verbatim(_binding_0) => ForeignItem::Verbatim(_binding_0),
1881fad3a1d3Sopenharmony_ci    }
1882fad3a1d3Sopenharmony_ci}
1883fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1884fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1885fad3a1d3Sopenharmony_cipub fn fold_foreign_item_fn<F>(f: &mut F, node: ForeignItemFn) -> ForeignItemFn
1886fad3a1d3Sopenharmony_ciwhere
1887fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1888fad3a1d3Sopenharmony_ci{
1889fad3a1d3Sopenharmony_ci    ForeignItemFn {
1890fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1891fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
1892fad3a1d3Sopenharmony_ci        sig: f.fold_signature(node.sig),
1893fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1894fad3a1d3Sopenharmony_ci    }
1895fad3a1d3Sopenharmony_ci}
1896fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1897fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1898fad3a1d3Sopenharmony_cipub fn fold_foreign_item_macro<F>(f: &mut F, node: ForeignItemMacro) -> ForeignItemMacro
1899fad3a1d3Sopenharmony_ciwhere
1900fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1901fad3a1d3Sopenharmony_ci{
1902fad3a1d3Sopenharmony_ci    ForeignItemMacro {
1903fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1904fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
1905fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1906fad3a1d3Sopenharmony_ci    }
1907fad3a1d3Sopenharmony_ci}
1908fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1909fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1910fad3a1d3Sopenharmony_cipub fn fold_foreign_item_static<F>(
1911fad3a1d3Sopenharmony_ci    f: &mut F,
1912fad3a1d3Sopenharmony_ci    node: ForeignItemStatic,
1913fad3a1d3Sopenharmony_ci) -> ForeignItemStatic
1914fad3a1d3Sopenharmony_ciwhere
1915fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1916fad3a1d3Sopenharmony_ci{
1917fad3a1d3Sopenharmony_ci    ForeignItemStatic {
1918fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1919fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
1920fad3a1d3Sopenharmony_ci        static_token: node.static_token,
1921fad3a1d3Sopenharmony_ci        mutability: f.fold_static_mutability(node.mutability),
1922fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
1923fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
1924fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
1925fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1926fad3a1d3Sopenharmony_ci    }
1927fad3a1d3Sopenharmony_ci}
1928fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
1929fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
1930fad3a1d3Sopenharmony_cipub fn fold_foreign_item_type<F>(f: &mut F, node: ForeignItemType) -> ForeignItemType
1931fad3a1d3Sopenharmony_ciwhere
1932fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1933fad3a1d3Sopenharmony_ci{
1934fad3a1d3Sopenharmony_ci    ForeignItemType {
1935fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
1936fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
1937fad3a1d3Sopenharmony_ci        type_token: node.type_token,
1938fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
1939fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
1940fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
1941fad3a1d3Sopenharmony_ci    }
1942fad3a1d3Sopenharmony_ci}
1943fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1944fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1945fad3a1d3Sopenharmony_cipub fn fold_generic_argument<F>(f: &mut F, node: GenericArgument) -> GenericArgument
1946fad3a1d3Sopenharmony_ciwhere
1947fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1948fad3a1d3Sopenharmony_ci{
1949fad3a1d3Sopenharmony_ci    match node {
1950fad3a1d3Sopenharmony_ci        GenericArgument::Lifetime(_binding_0) => {
1951fad3a1d3Sopenharmony_ci            GenericArgument::Lifetime(f.fold_lifetime(_binding_0))
1952fad3a1d3Sopenharmony_ci        }
1953fad3a1d3Sopenharmony_ci        GenericArgument::Type(_binding_0) => {
1954fad3a1d3Sopenharmony_ci            GenericArgument::Type(f.fold_type(_binding_0))
1955fad3a1d3Sopenharmony_ci        }
1956fad3a1d3Sopenharmony_ci        GenericArgument::Const(_binding_0) => {
1957fad3a1d3Sopenharmony_ci            GenericArgument::Const(f.fold_expr(_binding_0))
1958fad3a1d3Sopenharmony_ci        }
1959fad3a1d3Sopenharmony_ci        GenericArgument::AssocType(_binding_0) => {
1960fad3a1d3Sopenharmony_ci            GenericArgument::AssocType(f.fold_assoc_type(_binding_0))
1961fad3a1d3Sopenharmony_ci        }
1962fad3a1d3Sopenharmony_ci        GenericArgument::AssocConst(_binding_0) => {
1963fad3a1d3Sopenharmony_ci            GenericArgument::AssocConst(f.fold_assoc_const(_binding_0))
1964fad3a1d3Sopenharmony_ci        }
1965fad3a1d3Sopenharmony_ci        GenericArgument::Constraint(_binding_0) => {
1966fad3a1d3Sopenharmony_ci            GenericArgument::Constraint(f.fold_constraint(_binding_0))
1967fad3a1d3Sopenharmony_ci        }
1968fad3a1d3Sopenharmony_ci    }
1969fad3a1d3Sopenharmony_ci}
1970fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1971fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1972fad3a1d3Sopenharmony_cipub fn fold_generic_param<F>(f: &mut F, node: GenericParam) -> GenericParam
1973fad3a1d3Sopenharmony_ciwhere
1974fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1975fad3a1d3Sopenharmony_ci{
1976fad3a1d3Sopenharmony_ci    match node {
1977fad3a1d3Sopenharmony_ci        GenericParam::Lifetime(_binding_0) => {
1978fad3a1d3Sopenharmony_ci            GenericParam::Lifetime(f.fold_lifetime_param(_binding_0))
1979fad3a1d3Sopenharmony_ci        }
1980fad3a1d3Sopenharmony_ci        GenericParam::Type(_binding_0) => {
1981fad3a1d3Sopenharmony_ci            GenericParam::Type(f.fold_type_param(_binding_0))
1982fad3a1d3Sopenharmony_ci        }
1983fad3a1d3Sopenharmony_ci        GenericParam::Const(_binding_0) => {
1984fad3a1d3Sopenharmony_ci            GenericParam::Const(f.fold_const_param(_binding_0))
1985fad3a1d3Sopenharmony_ci        }
1986fad3a1d3Sopenharmony_ci    }
1987fad3a1d3Sopenharmony_ci}
1988fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
1989fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
1990fad3a1d3Sopenharmony_cipub fn fold_generics<F>(f: &mut F, node: Generics) -> Generics
1991fad3a1d3Sopenharmony_ciwhere
1992fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
1993fad3a1d3Sopenharmony_ci{
1994fad3a1d3Sopenharmony_ci    Generics {
1995fad3a1d3Sopenharmony_ci        lt_token: node.lt_token,
1996fad3a1d3Sopenharmony_ci        params: FoldHelper::lift(node.params, |it| f.fold_generic_param(it)),
1997fad3a1d3Sopenharmony_ci        gt_token: node.gt_token,
1998fad3a1d3Sopenharmony_ci        where_clause: (node.where_clause).map(|it| f.fold_where_clause(it)),
1999fad3a1d3Sopenharmony_ci    }
2000fad3a1d3Sopenharmony_ci}
2001fad3a1d3Sopenharmony_cipub fn fold_ident<F>(f: &mut F, node: Ident) -> Ident
2002fad3a1d3Sopenharmony_ciwhere
2003fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2004fad3a1d3Sopenharmony_ci{
2005fad3a1d3Sopenharmony_ci    let mut node = node;
2006fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2007fad3a1d3Sopenharmony_ci    node.set_span(span);
2008fad3a1d3Sopenharmony_ci    node
2009fad3a1d3Sopenharmony_ci}
2010fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2011fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2012fad3a1d3Sopenharmony_cipub fn fold_impl_item<F>(f: &mut F, node: ImplItem) -> ImplItem
2013fad3a1d3Sopenharmony_ciwhere
2014fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2015fad3a1d3Sopenharmony_ci{
2016fad3a1d3Sopenharmony_ci    match node {
2017fad3a1d3Sopenharmony_ci        ImplItem::Const(_binding_0) => {
2018fad3a1d3Sopenharmony_ci            ImplItem::Const(f.fold_impl_item_const(_binding_0))
2019fad3a1d3Sopenharmony_ci        }
2020fad3a1d3Sopenharmony_ci        ImplItem::Fn(_binding_0) => ImplItem::Fn(f.fold_impl_item_fn(_binding_0)),
2021fad3a1d3Sopenharmony_ci        ImplItem::Type(_binding_0) => ImplItem::Type(f.fold_impl_item_type(_binding_0)),
2022fad3a1d3Sopenharmony_ci        ImplItem::Macro(_binding_0) => {
2023fad3a1d3Sopenharmony_ci            ImplItem::Macro(f.fold_impl_item_macro(_binding_0))
2024fad3a1d3Sopenharmony_ci        }
2025fad3a1d3Sopenharmony_ci        ImplItem::Verbatim(_binding_0) => ImplItem::Verbatim(_binding_0),
2026fad3a1d3Sopenharmony_ci    }
2027fad3a1d3Sopenharmony_ci}
2028fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2029fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2030fad3a1d3Sopenharmony_cipub fn fold_impl_item_const<F>(f: &mut F, node: ImplItemConst) -> ImplItemConst
2031fad3a1d3Sopenharmony_ciwhere
2032fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2033fad3a1d3Sopenharmony_ci{
2034fad3a1d3Sopenharmony_ci    ImplItemConst {
2035fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2036fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2037fad3a1d3Sopenharmony_ci        defaultness: node.defaultness,
2038fad3a1d3Sopenharmony_ci        const_token: node.const_token,
2039fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2040fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2041fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2042fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
2043fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2044fad3a1d3Sopenharmony_ci        expr: f.fold_expr(node.expr),
2045fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2046fad3a1d3Sopenharmony_ci    }
2047fad3a1d3Sopenharmony_ci}
2048fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2049fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2050fad3a1d3Sopenharmony_cipub fn fold_impl_item_fn<F>(f: &mut F, node: ImplItemFn) -> ImplItemFn
2051fad3a1d3Sopenharmony_ciwhere
2052fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2053fad3a1d3Sopenharmony_ci{
2054fad3a1d3Sopenharmony_ci    ImplItemFn {
2055fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2056fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2057fad3a1d3Sopenharmony_ci        defaultness: node.defaultness,
2058fad3a1d3Sopenharmony_ci        sig: f.fold_signature(node.sig),
2059fad3a1d3Sopenharmony_ci        block: f.fold_block(node.block),
2060fad3a1d3Sopenharmony_ci    }
2061fad3a1d3Sopenharmony_ci}
2062fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2063fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2064fad3a1d3Sopenharmony_cipub fn fold_impl_item_macro<F>(f: &mut F, node: ImplItemMacro) -> ImplItemMacro
2065fad3a1d3Sopenharmony_ciwhere
2066fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2067fad3a1d3Sopenharmony_ci{
2068fad3a1d3Sopenharmony_ci    ImplItemMacro {
2069fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2070fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
2071fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2072fad3a1d3Sopenharmony_ci    }
2073fad3a1d3Sopenharmony_ci}
2074fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2075fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2076fad3a1d3Sopenharmony_cipub fn fold_impl_item_type<F>(f: &mut F, node: ImplItemType) -> ImplItemType
2077fad3a1d3Sopenharmony_ciwhere
2078fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2079fad3a1d3Sopenharmony_ci{
2080fad3a1d3Sopenharmony_ci    ImplItemType {
2081fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2082fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2083fad3a1d3Sopenharmony_ci        defaultness: node.defaultness,
2084fad3a1d3Sopenharmony_ci        type_token: node.type_token,
2085fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2086fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2087fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2088fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
2089fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2090fad3a1d3Sopenharmony_ci    }
2091fad3a1d3Sopenharmony_ci}
2092fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2093fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2094fad3a1d3Sopenharmony_cipub fn fold_impl_restriction<F>(f: &mut F, node: ImplRestriction) -> ImplRestriction
2095fad3a1d3Sopenharmony_ciwhere
2096fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2097fad3a1d3Sopenharmony_ci{
2098fad3a1d3Sopenharmony_ci    match node {}
2099fad3a1d3Sopenharmony_ci}
2100fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2101fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2102fad3a1d3Sopenharmony_cipub fn fold_index<F>(f: &mut F, node: Index) -> Index
2103fad3a1d3Sopenharmony_ciwhere
2104fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2105fad3a1d3Sopenharmony_ci{
2106fad3a1d3Sopenharmony_ci    Index {
2107fad3a1d3Sopenharmony_ci        index: node.index,
2108fad3a1d3Sopenharmony_ci        span: f.fold_span(node.span),
2109fad3a1d3Sopenharmony_ci    }
2110fad3a1d3Sopenharmony_ci}
2111fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2112fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2113fad3a1d3Sopenharmony_cipub fn fold_item<F>(f: &mut F, node: Item) -> Item
2114fad3a1d3Sopenharmony_ciwhere
2115fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2116fad3a1d3Sopenharmony_ci{
2117fad3a1d3Sopenharmony_ci    match node {
2118fad3a1d3Sopenharmony_ci        Item::Const(_binding_0) => Item::Const(f.fold_item_const(_binding_0)),
2119fad3a1d3Sopenharmony_ci        Item::Enum(_binding_0) => Item::Enum(f.fold_item_enum(_binding_0)),
2120fad3a1d3Sopenharmony_ci        Item::ExternCrate(_binding_0) => {
2121fad3a1d3Sopenharmony_ci            Item::ExternCrate(f.fold_item_extern_crate(_binding_0))
2122fad3a1d3Sopenharmony_ci        }
2123fad3a1d3Sopenharmony_ci        Item::Fn(_binding_0) => Item::Fn(f.fold_item_fn(_binding_0)),
2124fad3a1d3Sopenharmony_ci        Item::ForeignMod(_binding_0) => {
2125fad3a1d3Sopenharmony_ci            Item::ForeignMod(f.fold_item_foreign_mod(_binding_0))
2126fad3a1d3Sopenharmony_ci        }
2127fad3a1d3Sopenharmony_ci        Item::Impl(_binding_0) => Item::Impl(f.fold_item_impl(_binding_0)),
2128fad3a1d3Sopenharmony_ci        Item::Macro(_binding_0) => Item::Macro(f.fold_item_macro(_binding_0)),
2129fad3a1d3Sopenharmony_ci        Item::Mod(_binding_0) => Item::Mod(f.fold_item_mod(_binding_0)),
2130fad3a1d3Sopenharmony_ci        Item::Static(_binding_0) => Item::Static(f.fold_item_static(_binding_0)),
2131fad3a1d3Sopenharmony_ci        Item::Struct(_binding_0) => Item::Struct(f.fold_item_struct(_binding_0)),
2132fad3a1d3Sopenharmony_ci        Item::Trait(_binding_0) => Item::Trait(f.fold_item_trait(_binding_0)),
2133fad3a1d3Sopenharmony_ci        Item::TraitAlias(_binding_0) => {
2134fad3a1d3Sopenharmony_ci            Item::TraitAlias(f.fold_item_trait_alias(_binding_0))
2135fad3a1d3Sopenharmony_ci        }
2136fad3a1d3Sopenharmony_ci        Item::Type(_binding_0) => Item::Type(f.fold_item_type(_binding_0)),
2137fad3a1d3Sopenharmony_ci        Item::Union(_binding_0) => Item::Union(f.fold_item_union(_binding_0)),
2138fad3a1d3Sopenharmony_ci        Item::Use(_binding_0) => Item::Use(f.fold_item_use(_binding_0)),
2139fad3a1d3Sopenharmony_ci        Item::Verbatim(_binding_0) => Item::Verbatim(_binding_0),
2140fad3a1d3Sopenharmony_ci    }
2141fad3a1d3Sopenharmony_ci}
2142fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2143fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2144fad3a1d3Sopenharmony_cipub fn fold_item_const<F>(f: &mut F, node: ItemConst) -> ItemConst
2145fad3a1d3Sopenharmony_ciwhere
2146fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2147fad3a1d3Sopenharmony_ci{
2148fad3a1d3Sopenharmony_ci    ItemConst {
2149fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2150fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2151fad3a1d3Sopenharmony_ci        const_token: node.const_token,
2152fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2153fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2154fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2155fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2156fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2157fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
2158fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2159fad3a1d3Sopenharmony_ci    }
2160fad3a1d3Sopenharmony_ci}
2161fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2162fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2163fad3a1d3Sopenharmony_cipub fn fold_item_enum<F>(f: &mut F, node: ItemEnum) -> ItemEnum
2164fad3a1d3Sopenharmony_ciwhere
2165fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2166fad3a1d3Sopenharmony_ci{
2167fad3a1d3Sopenharmony_ci    ItemEnum {
2168fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2169fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2170fad3a1d3Sopenharmony_ci        enum_token: node.enum_token,
2171fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2172fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2173fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
2174fad3a1d3Sopenharmony_ci        variants: FoldHelper::lift(node.variants, |it| f.fold_variant(it)),
2175fad3a1d3Sopenharmony_ci    }
2176fad3a1d3Sopenharmony_ci}
2177fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2178fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2179fad3a1d3Sopenharmony_cipub fn fold_item_extern_crate<F>(f: &mut F, node: ItemExternCrate) -> ItemExternCrate
2180fad3a1d3Sopenharmony_ciwhere
2181fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2182fad3a1d3Sopenharmony_ci{
2183fad3a1d3Sopenharmony_ci    ItemExternCrate {
2184fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2185fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2186fad3a1d3Sopenharmony_ci        extern_token: node.extern_token,
2187fad3a1d3Sopenharmony_ci        crate_token: node.crate_token,
2188fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2189fad3a1d3Sopenharmony_ci        rename: (node.rename).map(|it| ((it).0, f.fold_ident((it).1))),
2190fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2191fad3a1d3Sopenharmony_ci    }
2192fad3a1d3Sopenharmony_ci}
2193fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2194fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2195fad3a1d3Sopenharmony_cipub fn fold_item_fn<F>(f: &mut F, node: ItemFn) -> ItemFn
2196fad3a1d3Sopenharmony_ciwhere
2197fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2198fad3a1d3Sopenharmony_ci{
2199fad3a1d3Sopenharmony_ci    ItemFn {
2200fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2201fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2202fad3a1d3Sopenharmony_ci        sig: f.fold_signature(node.sig),
2203fad3a1d3Sopenharmony_ci        block: Box::new(f.fold_block(*node.block)),
2204fad3a1d3Sopenharmony_ci    }
2205fad3a1d3Sopenharmony_ci}
2206fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2207fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2208fad3a1d3Sopenharmony_cipub fn fold_item_foreign_mod<F>(f: &mut F, node: ItemForeignMod) -> ItemForeignMod
2209fad3a1d3Sopenharmony_ciwhere
2210fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2211fad3a1d3Sopenharmony_ci{
2212fad3a1d3Sopenharmony_ci    ItemForeignMod {
2213fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2214fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
2215fad3a1d3Sopenharmony_ci        abi: f.fold_abi(node.abi),
2216fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
2217fad3a1d3Sopenharmony_ci        items: FoldHelper::lift(node.items, |it| f.fold_foreign_item(it)),
2218fad3a1d3Sopenharmony_ci    }
2219fad3a1d3Sopenharmony_ci}
2220fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2221fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2222fad3a1d3Sopenharmony_cipub fn fold_item_impl<F>(f: &mut F, node: ItemImpl) -> ItemImpl
2223fad3a1d3Sopenharmony_ciwhere
2224fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2225fad3a1d3Sopenharmony_ci{
2226fad3a1d3Sopenharmony_ci    ItemImpl {
2227fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2228fad3a1d3Sopenharmony_ci        defaultness: node.defaultness,
2229fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
2230fad3a1d3Sopenharmony_ci        impl_token: node.impl_token,
2231fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2232fad3a1d3Sopenharmony_ci        trait_: (node.trait_).map(|it| ((it).0, f.fold_path((it).1), (it).2)),
2233fad3a1d3Sopenharmony_ci        self_ty: Box::new(f.fold_type(*node.self_ty)),
2234fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
2235fad3a1d3Sopenharmony_ci        items: FoldHelper::lift(node.items, |it| f.fold_impl_item(it)),
2236fad3a1d3Sopenharmony_ci    }
2237fad3a1d3Sopenharmony_ci}
2238fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2239fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2240fad3a1d3Sopenharmony_cipub fn fold_item_macro<F>(f: &mut F, node: ItemMacro) -> ItemMacro
2241fad3a1d3Sopenharmony_ciwhere
2242fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2243fad3a1d3Sopenharmony_ci{
2244fad3a1d3Sopenharmony_ci    ItemMacro {
2245fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2246fad3a1d3Sopenharmony_ci        ident: (node.ident).map(|it| f.fold_ident(it)),
2247fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
2248fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2249fad3a1d3Sopenharmony_ci    }
2250fad3a1d3Sopenharmony_ci}
2251fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2252fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2253fad3a1d3Sopenharmony_cipub fn fold_item_mod<F>(f: &mut F, node: ItemMod) -> ItemMod
2254fad3a1d3Sopenharmony_ciwhere
2255fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2256fad3a1d3Sopenharmony_ci{
2257fad3a1d3Sopenharmony_ci    ItemMod {
2258fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2259fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2260fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
2261fad3a1d3Sopenharmony_ci        mod_token: node.mod_token,
2262fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2263fad3a1d3Sopenharmony_ci        content: (node.content)
2264fad3a1d3Sopenharmony_ci            .map(|it| ((it).0, FoldHelper::lift((it).1, |it| f.fold_item(it)))),
2265fad3a1d3Sopenharmony_ci        semi: node.semi,
2266fad3a1d3Sopenharmony_ci    }
2267fad3a1d3Sopenharmony_ci}
2268fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2269fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2270fad3a1d3Sopenharmony_cipub fn fold_item_static<F>(f: &mut F, node: ItemStatic) -> ItemStatic
2271fad3a1d3Sopenharmony_ciwhere
2272fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2273fad3a1d3Sopenharmony_ci{
2274fad3a1d3Sopenharmony_ci    ItemStatic {
2275fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2276fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2277fad3a1d3Sopenharmony_ci        static_token: node.static_token,
2278fad3a1d3Sopenharmony_ci        mutability: f.fold_static_mutability(node.mutability),
2279fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2280fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2281fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2282fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2283fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
2284fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2285fad3a1d3Sopenharmony_ci    }
2286fad3a1d3Sopenharmony_ci}
2287fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2288fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2289fad3a1d3Sopenharmony_cipub fn fold_item_struct<F>(f: &mut F, node: ItemStruct) -> ItemStruct
2290fad3a1d3Sopenharmony_ciwhere
2291fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2292fad3a1d3Sopenharmony_ci{
2293fad3a1d3Sopenharmony_ci    ItemStruct {
2294fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2295fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2296fad3a1d3Sopenharmony_ci        struct_token: node.struct_token,
2297fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2298fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2299fad3a1d3Sopenharmony_ci        fields: f.fold_fields(node.fields),
2300fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2301fad3a1d3Sopenharmony_ci    }
2302fad3a1d3Sopenharmony_ci}
2303fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2304fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2305fad3a1d3Sopenharmony_cipub fn fold_item_trait<F>(f: &mut F, node: ItemTrait) -> ItemTrait
2306fad3a1d3Sopenharmony_ciwhere
2307fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2308fad3a1d3Sopenharmony_ci{
2309fad3a1d3Sopenharmony_ci    ItemTrait {
2310fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2311fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2312fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
2313fad3a1d3Sopenharmony_ci        auto_token: node.auto_token,
2314fad3a1d3Sopenharmony_ci        restriction: (node.restriction).map(|it| f.fold_impl_restriction(it)),
2315fad3a1d3Sopenharmony_ci        trait_token: node.trait_token,
2316fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2317fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2318fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2319fad3a1d3Sopenharmony_ci        supertraits: FoldHelper::lift(
2320fad3a1d3Sopenharmony_ci            node.supertraits,
2321fad3a1d3Sopenharmony_ci            |it| f.fold_type_param_bound(it),
2322fad3a1d3Sopenharmony_ci        ),
2323fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
2324fad3a1d3Sopenharmony_ci        items: FoldHelper::lift(node.items, |it| f.fold_trait_item(it)),
2325fad3a1d3Sopenharmony_ci    }
2326fad3a1d3Sopenharmony_ci}
2327fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2328fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2329fad3a1d3Sopenharmony_cipub fn fold_item_trait_alias<F>(f: &mut F, node: ItemTraitAlias) -> ItemTraitAlias
2330fad3a1d3Sopenharmony_ciwhere
2331fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2332fad3a1d3Sopenharmony_ci{
2333fad3a1d3Sopenharmony_ci    ItemTraitAlias {
2334fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2335fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2336fad3a1d3Sopenharmony_ci        trait_token: node.trait_token,
2337fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2338fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2339fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2340fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
2341fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2342fad3a1d3Sopenharmony_ci    }
2343fad3a1d3Sopenharmony_ci}
2344fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2345fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2346fad3a1d3Sopenharmony_cipub fn fold_item_type<F>(f: &mut F, node: ItemType) -> ItemType
2347fad3a1d3Sopenharmony_ciwhere
2348fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2349fad3a1d3Sopenharmony_ci{
2350fad3a1d3Sopenharmony_ci    ItemType {
2351fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2352fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2353fad3a1d3Sopenharmony_ci        type_token: node.type_token,
2354fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2355fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2356fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2357fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2358fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2359fad3a1d3Sopenharmony_ci    }
2360fad3a1d3Sopenharmony_ci}
2361fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2362fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2363fad3a1d3Sopenharmony_cipub fn fold_item_union<F>(f: &mut F, node: ItemUnion) -> ItemUnion
2364fad3a1d3Sopenharmony_ciwhere
2365fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2366fad3a1d3Sopenharmony_ci{
2367fad3a1d3Sopenharmony_ci    ItemUnion {
2368fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2369fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2370fad3a1d3Sopenharmony_ci        union_token: node.union_token,
2371fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2372fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2373fad3a1d3Sopenharmony_ci        fields: f.fold_fields_named(node.fields),
2374fad3a1d3Sopenharmony_ci    }
2375fad3a1d3Sopenharmony_ci}
2376fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2377fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2378fad3a1d3Sopenharmony_cipub fn fold_item_use<F>(f: &mut F, node: ItemUse) -> ItemUse
2379fad3a1d3Sopenharmony_ciwhere
2380fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2381fad3a1d3Sopenharmony_ci{
2382fad3a1d3Sopenharmony_ci    ItemUse {
2383fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2384fad3a1d3Sopenharmony_ci        vis: f.fold_visibility(node.vis),
2385fad3a1d3Sopenharmony_ci        use_token: node.use_token,
2386fad3a1d3Sopenharmony_ci        leading_colon: node.leading_colon,
2387fad3a1d3Sopenharmony_ci        tree: f.fold_use_tree(node.tree),
2388fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2389fad3a1d3Sopenharmony_ci    }
2390fad3a1d3Sopenharmony_ci}
2391fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2392fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2393fad3a1d3Sopenharmony_cipub fn fold_label<F>(f: &mut F, node: Label) -> Label
2394fad3a1d3Sopenharmony_ciwhere
2395fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2396fad3a1d3Sopenharmony_ci{
2397fad3a1d3Sopenharmony_ci    Label {
2398fad3a1d3Sopenharmony_ci        name: f.fold_lifetime(node.name),
2399fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2400fad3a1d3Sopenharmony_ci    }
2401fad3a1d3Sopenharmony_ci}
2402fad3a1d3Sopenharmony_cipub fn fold_lifetime<F>(f: &mut F, node: Lifetime) -> Lifetime
2403fad3a1d3Sopenharmony_ciwhere
2404fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2405fad3a1d3Sopenharmony_ci{
2406fad3a1d3Sopenharmony_ci    Lifetime {
2407fad3a1d3Sopenharmony_ci        apostrophe: f.fold_span(node.apostrophe),
2408fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2409fad3a1d3Sopenharmony_ci    }
2410fad3a1d3Sopenharmony_ci}
2411fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2412fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2413fad3a1d3Sopenharmony_cipub fn fold_lifetime_param<F>(f: &mut F, node: LifetimeParam) -> LifetimeParam
2414fad3a1d3Sopenharmony_ciwhere
2415fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2416fad3a1d3Sopenharmony_ci{
2417fad3a1d3Sopenharmony_ci    LifetimeParam {
2418fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2419fad3a1d3Sopenharmony_ci        lifetime: f.fold_lifetime(node.lifetime),
2420fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2421fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_lifetime(it)),
2422fad3a1d3Sopenharmony_ci    }
2423fad3a1d3Sopenharmony_ci}
2424fad3a1d3Sopenharmony_cipub fn fold_lit<F>(f: &mut F, node: Lit) -> Lit
2425fad3a1d3Sopenharmony_ciwhere
2426fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2427fad3a1d3Sopenharmony_ci{
2428fad3a1d3Sopenharmony_ci    match node {
2429fad3a1d3Sopenharmony_ci        Lit::Str(_binding_0) => Lit::Str(f.fold_lit_str(_binding_0)),
2430fad3a1d3Sopenharmony_ci        Lit::ByteStr(_binding_0) => Lit::ByteStr(f.fold_lit_byte_str(_binding_0)),
2431fad3a1d3Sopenharmony_ci        Lit::Byte(_binding_0) => Lit::Byte(f.fold_lit_byte(_binding_0)),
2432fad3a1d3Sopenharmony_ci        Lit::Char(_binding_0) => Lit::Char(f.fold_lit_char(_binding_0)),
2433fad3a1d3Sopenharmony_ci        Lit::Int(_binding_0) => Lit::Int(f.fold_lit_int(_binding_0)),
2434fad3a1d3Sopenharmony_ci        Lit::Float(_binding_0) => Lit::Float(f.fold_lit_float(_binding_0)),
2435fad3a1d3Sopenharmony_ci        Lit::Bool(_binding_0) => Lit::Bool(f.fold_lit_bool(_binding_0)),
2436fad3a1d3Sopenharmony_ci        Lit::Verbatim(_binding_0) => Lit::Verbatim(_binding_0),
2437fad3a1d3Sopenharmony_ci    }
2438fad3a1d3Sopenharmony_ci}
2439fad3a1d3Sopenharmony_cipub fn fold_lit_bool<F>(f: &mut F, node: LitBool) -> LitBool
2440fad3a1d3Sopenharmony_ciwhere
2441fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2442fad3a1d3Sopenharmony_ci{
2443fad3a1d3Sopenharmony_ci    LitBool {
2444fad3a1d3Sopenharmony_ci        value: node.value,
2445fad3a1d3Sopenharmony_ci        span: f.fold_span(node.span),
2446fad3a1d3Sopenharmony_ci    }
2447fad3a1d3Sopenharmony_ci}
2448fad3a1d3Sopenharmony_cipub fn fold_lit_byte<F>(f: &mut F, node: LitByte) -> LitByte
2449fad3a1d3Sopenharmony_ciwhere
2450fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2451fad3a1d3Sopenharmony_ci{
2452fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2453fad3a1d3Sopenharmony_ci    let mut node = node;
2454fad3a1d3Sopenharmony_ci    node.set_span(span);
2455fad3a1d3Sopenharmony_ci    node
2456fad3a1d3Sopenharmony_ci}
2457fad3a1d3Sopenharmony_cipub fn fold_lit_byte_str<F>(f: &mut F, node: LitByteStr) -> LitByteStr
2458fad3a1d3Sopenharmony_ciwhere
2459fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2460fad3a1d3Sopenharmony_ci{
2461fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2462fad3a1d3Sopenharmony_ci    let mut node = node;
2463fad3a1d3Sopenharmony_ci    node.set_span(span);
2464fad3a1d3Sopenharmony_ci    node
2465fad3a1d3Sopenharmony_ci}
2466fad3a1d3Sopenharmony_cipub fn fold_lit_char<F>(f: &mut F, node: LitChar) -> LitChar
2467fad3a1d3Sopenharmony_ciwhere
2468fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2469fad3a1d3Sopenharmony_ci{
2470fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2471fad3a1d3Sopenharmony_ci    let mut node = node;
2472fad3a1d3Sopenharmony_ci    node.set_span(span);
2473fad3a1d3Sopenharmony_ci    node
2474fad3a1d3Sopenharmony_ci}
2475fad3a1d3Sopenharmony_cipub fn fold_lit_float<F>(f: &mut F, node: LitFloat) -> LitFloat
2476fad3a1d3Sopenharmony_ciwhere
2477fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2478fad3a1d3Sopenharmony_ci{
2479fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2480fad3a1d3Sopenharmony_ci    let mut node = node;
2481fad3a1d3Sopenharmony_ci    node.set_span(span);
2482fad3a1d3Sopenharmony_ci    node
2483fad3a1d3Sopenharmony_ci}
2484fad3a1d3Sopenharmony_cipub fn fold_lit_int<F>(f: &mut F, node: LitInt) -> LitInt
2485fad3a1d3Sopenharmony_ciwhere
2486fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2487fad3a1d3Sopenharmony_ci{
2488fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2489fad3a1d3Sopenharmony_ci    let mut node = node;
2490fad3a1d3Sopenharmony_ci    node.set_span(span);
2491fad3a1d3Sopenharmony_ci    node
2492fad3a1d3Sopenharmony_ci}
2493fad3a1d3Sopenharmony_cipub fn fold_lit_str<F>(f: &mut F, node: LitStr) -> LitStr
2494fad3a1d3Sopenharmony_ciwhere
2495fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2496fad3a1d3Sopenharmony_ci{
2497fad3a1d3Sopenharmony_ci    let span = f.fold_span(node.span());
2498fad3a1d3Sopenharmony_ci    let mut node = node;
2499fad3a1d3Sopenharmony_ci    node.set_span(span);
2500fad3a1d3Sopenharmony_ci    node
2501fad3a1d3Sopenharmony_ci}
2502fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2503fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2504fad3a1d3Sopenharmony_cipub fn fold_local<F>(f: &mut F, node: Local) -> Local
2505fad3a1d3Sopenharmony_ciwhere
2506fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2507fad3a1d3Sopenharmony_ci{
2508fad3a1d3Sopenharmony_ci    Local {
2509fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2510fad3a1d3Sopenharmony_ci        let_token: node.let_token,
2511fad3a1d3Sopenharmony_ci        pat: f.fold_pat(node.pat),
2512fad3a1d3Sopenharmony_ci        init: (node.init).map(|it| f.fold_local_init(it)),
2513fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2514fad3a1d3Sopenharmony_ci    }
2515fad3a1d3Sopenharmony_ci}
2516fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2517fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2518fad3a1d3Sopenharmony_cipub fn fold_local_init<F>(f: &mut F, node: LocalInit) -> LocalInit
2519fad3a1d3Sopenharmony_ciwhere
2520fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2521fad3a1d3Sopenharmony_ci{
2522fad3a1d3Sopenharmony_ci    LocalInit {
2523fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2524fad3a1d3Sopenharmony_ci        expr: Box::new(f.fold_expr(*node.expr)),
2525fad3a1d3Sopenharmony_ci        diverge: (node.diverge).map(|it| ((it).0, Box::new(f.fold_expr(*(it).1)))),
2526fad3a1d3Sopenharmony_ci    }
2527fad3a1d3Sopenharmony_ci}
2528fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2529fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2530fad3a1d3Sopenharmony_cipub fn fold_macro<F>(f: &mut F, node: Macro) -> Macro
2531fad3a1d3Sopenharmony_ciwhere
2532fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2533fad3a1d3Sopenharmony_ci{
2534fad3a1d3Sopenharmony_ci    Macro {
2535fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2536fad3a1d3Sopenharmony_ci        bang_token: node.bang_token,
2537fad3a1d3Sopenharmony_ci        delimiter: f.fold_macro_delimiter(node.delimiter),
2538fad3a1d3Sopenharmony_ci        tokens: node.tokens,
2539fad3a1d3Sopenharmony_ci    }
2540fad3a1d3Sopenharmony_ci}
2541fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2542fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2543fad3a1d3Sopenharmony_cipub fn fold_macro_delimiter<F>(f: &mut F, node: MacroDelimiter) -> MacroDelimiter
2544fad3a1d3Sopenharmony_ciwhere
2545fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2546fad3a1d3Sopenharmony_ci{
2547fad3a1d3Sopenharmony_ci    match node {
2548fad3a1d3Sopenharmony_ci        MacroDelimiter::Paren(_binding_0) => MacroDelimiter::Paren(_binding_0),
2549fad3a1d3Sopenharmony_ci        MacroDelimiter::Brace(_binding_0) => MacroDelimiter::Brace(_binding_0),
2550fad3a1d3Sopenharmony_ci        MacroDelimiter::Bracket(_binding_0) => MacroDelimiter::Bracket(_binding_0),
2551fad3a1d3Sopenharmony_ci    }
2552fad3a1d3Sopenharmony_ci}
2553fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2554fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2555fad3a1d3Sopenharmony_cipub fn fold_member<F>(f: &mut F, node: Member) -> Member
2556fad3a1d3Sopenharmony_ciwhere
2557fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2558fad3a1d3Sopenharmony_ci{
2559fad3a1d3Sopenharmony_ci    match node {
2560fad3a1d3Sopenharmony_ci        Member::Named(_binding_0) => Member::Named(f.fold_ident(_binding_0)),
2561fad3a1d3Sopenharmony_ci        Member::Unnamed(_binding_0) => Member::Unnamed(f.fold_index(_binding_0)),
2562fad3a1d3Sopenharmony_ci    }
2563fad3a1d3Sopenharmony_ci}
2564fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2565fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2566fad3a1d3Sopenharmony_cipub fn fold_meta<F>(f: &mut F, node: Meta) -> Meta
2567fad3a1d3Sopenharmony_ciwhere
2568fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2569fad3a1d3Sopenharmony_ci{
2570fad3a1d3Sopenharmony_ci    match node {
2571fad3a1d3Sopenharmony_ci        Meta::Path(_binding_0) => Meta::Path(f.fold_path(_binding_0)),
2572fad3a1d3Sopenharmony_ci        Meta::List(_binding_0) => Meta::List(f.fold_meta_list(_binding_0)),
2573fad3a1d3Sopenharmony_ci        Meta::NameValue(_binding_0) => {
2574fad3a1d3Sopenharmony_ci            Meta::NameValue(f.fold_meta_name_value(_binding_0))
2575fad3a1d3Sopenharmony_ci        }
2576fad3a1d3Sopenharmony_ci    }
2577fad3a1d3Sopenharmony_ci}
2578fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2579fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2580fad3a1d3Sopenharmony_cipub fn fold_meta_list<F>(f: &mut F, node: MetaList) -> MetaList
2581fad3a1d3Sopenharmony_ciwhere
2582fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2583fad3a1d3Sopenharmony_ci{
2584fad3a1d3Sopenharmony_ci    MetaList {
2585fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2586fad3a1d3Sopenharmony_ci        delimiter: f.fold_macro_delimiter(node.delimiter),
2587fad3a1d3Sopenharmony_ci        tokens: node.tokens,
2588fad3a1d3Sopenharmony_ci    }
2589fad3a1d3Sopenharmony_ci}
2590fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2591fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2592fad3a1d3Sopenharmony_cipub fn fold_meta_name_value<F>(f: &mut F, node: MetaNameValue) -> MetaNameValue
2593fad3a1d3Sopenharmony_ciwhere
2594fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2595fad3a1d3Sopenharmony_ci{
2596fad3a1d3Sopenharmony_ci    MetaNameValue {
2597fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2598fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
2599fad3a1d3Sopenharmony_ci        value: f.fold_expr(node.value),
2600fad3a1d3Sopenharmony_ci    }
2601fad3a1d3Sopenharmony_ci}
2602fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2603fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2604fad3a1d3Sopenharmony_cipub fn fold_parenthesized_generic_arguments<F>(
2605fad3a1d3Sopenharmony_ci    f: &mut F,
2606fad3a1d3Sopenharmony_ci    node: ParenthesizedGenericArguments,
2607fad3a1d3Sopenharmony_ci) -> ParenthesizedGenericArguments
2608fad3a1d3Sopenharmony_ciwhere
2609fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2610fad3a1d3Sopenharmony_ci{
2611fad3a1d3Sopenharmony_ci    ParenthesizedGenericArguments {
2612fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2613fad3a1d3Sopenharmony_ci        inputs: FoldHelper::lift(node.inputs, |it| f.fold_type(it)),
2614fad3a1d3Sopenharmony_ci        output: f.fold_return_type(node.output),
2615fad3a1d3Sopenharmony_ci    }
2616fad3a1d3Sopenharmony_ci}
2617fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2618fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2619fad3a1d3Sopenharmony_cipub fn fold_pat<F>(f: &mut F, node: Pat) -> Pat
2620fad3a1d3Sopenharmony_ciwhere
2621fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2622fad3a1d3Sopenharmony_ci{
2623fad3a1d3Sopenharmony_ci    match node {
2624fad3a1d3Sopenharmony_ci        Pat::Const(_binding_0) => Pat::Const(f.fold_expr_const(_binding_0)),
2625fad3a1d3Sopenharmony_ci        Pat::Ident(_binding_0) => Pat::Ident(f.fold_pat_ident(_binding_0)),
2626fad3a1d3Sopenharmony_ci        Pat::Lit(_binding_0) => Pat::Lit(f.fold_expr_lit(_binding_0)),
2627fad3a1d3Sopenharmony_ci        Pat::Macro(_binding_0) => Pat::Macro(f.fold_expr_macro(_binding_0)),
2628fad3a1d3Sopenharmony_ci        Pat::Or(_binding_0) => Pat::Or(f.fold_pat_or(_binding_0)),
2629fad3a1d3Sopenharmony_ci        Pat::Paren(_binding_0) => Pat::Paren(f.fold_pat_paren(_binding_0)),
2630fad3a1d3Sopenharmony_ci        Pat::Path(_binding_0) => Pat::Path(f.fold_expr_path(_binding_0)),
2631fad3a1d3Sopenharmony_ci        Pat::Range(_binding_0) => Pat::Range(f.fold_expr_range(_binding_0)),
2632fad3a1d3Sopenharmony_ci        Pat::Reference(_binding_0) => Pat::Reference(f.fold_pat_reference(_binding_0)),
2633fad3a1d3Sopenharmony_ci        Pat::Rest(_binding_0) => Pat::Rest(f.fold_pat_rest(_binding_0)),
2634fad3a1d3Sopenharmony_ci        Pat::Slice(_binding_0) => Pat::Slice(f.fold_pat_slice(_binding_0)),
2635fad3a1d3Sopenharmony_ci        Pat::Struct(_binding_0) => Pat::Struct(f.fold_pat_struct(_binding_0)),
2636fad3a1d3Sopenharmony_ci        Pat::Tuple(_binding_0) => Pat::Tuple(f.fold_pat_tuple(_binding_0)),
2637fad3a1d3Sopenharmony_ci        Pat::TupleStruct(_binding_0) => {
2638fad3a1d3Sopenharmony_ci            Pat::TupleStruct(f.fold_pat_tuple_struct(_binding_0))
2639fad3a1d3Sopenharmony_ci        }
2640fad3a1d3Sopenharmony_ci        Pat::Type(_binding_0) => Pat::Type(f.fold_pat_type(_binding_0)),
2641fad3a1d3Sopenharmony_ci        Pat::Verbatim(_binding_0) => Pat::Verbatim(_binding_0),
2642fad3a1d3Sopenharmony_ci        Pat::Wild(_binding_0) => Pat::Wild(f.fold_pat_wild(_binding_0)),
2643fad3a1d3Sopenharmony_ci    }
2644fad3a1d3Sopenharmony_ci}
2645fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2646fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2647fad3a1d3Sopenharmony_cipub fn fold_pat_ident<F>(f: &mut F, node: PatIdent) -> PatIdent
2648fad3a1d3Sopenharmony_ciwhere
2649fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2650fad3a1d3Sopenharmony_ci{
2651fad3a1d3Sopenharmony_ci    PatIdent {
2652fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2653fad3a1d3Sopenharmony_ci        by_ref: node.by_ref,
2654fad3a1d3Sopenharmony_ci        mutability: node.mutability,
2655fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2656fad3a1d3Sopenharmony_ci        subpat: (node.subpat).map(|it| ((it).0, Box::new(f.fold_pat(*(it).1)))),
2657fad3a1d3Sopenharmony_ci    }
2658fad3a1d3Sopenharmony_ci}
2659fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2660fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2661fad3a1d3Sopenharmony_cipub fn fold_pat_or<F>(f: &mut F, node: PatOr) -> PatOr
2662fad3a1d3Sopenharmony_ciwhere
2663fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2664fad3a1d3Sopenharmony_ci{
2665fad3a1d3Sopenharmony_ci    PatOr {
2666fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2667fad3a1d3Sopenharmony_ci        leading_vert: node.leading_vert,
2668fad3a1d3Sopenharmony_ci        cases: FoldHelper::lift(node.cases, |it| f.fold_pat(it)),
2669fad3a1d3Sopenharmony_ci    }
2670fad3a1d3Sopenharmony_ci}
2671fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2672fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2673fad3a1d3Sopenharmony_cipub fn fold_pat_paren<F>(f: &mut F, node: PatParen) -> PatParen
2674fad3a1d3Sopenharmony_ciwhere
2675fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2676fad3a1d3Sopenharmony_ci{
2677fad3a1d3Sopenharmony_ci    PatParen {
2678fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2679fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2680fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
2681fad3a1d3Sopenharmony_ci    }
2682fad3a1d3Sopenharmony_ci}
2683fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2684fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2685fad3a1d3Sopenharmony_cipub fn fold_pat_reference<F>(f: &mut F, node: PatReference) -> PatReference
2686fad3a1d3Sopenharmony_ciwhere
2687fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2688fad3a1d3Sopenharmony_ci{
2689fad3a1d3Sopenharmony_ci    PatReference {
2690fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2691fad3a1d3Sopenharmony_ci        and_token: node.and_token,
2692fad3a1d3Sopenharmony_ci        mutability: node.mutability,
2693fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
2694fad3a1d3Sopenharmony_ci    }
2695fad3a1d3Sopenharmony_ci}
2696fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2697fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2698fad3a1d3Sopenharmony_cipub fn fold_pat_rest<F>(f: &mut F, node: PatRest) -> PatRest
2699fad3a1d3Sopenharmony_ciwhere
2700fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2701fad3a1d3Sopenharmony_ci{
2702fad3a1d3Sopenharmony_ci    PatRest {
2703fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2704fad3a1d3Sopenharmony_ci        dot2_token: node.dot2_token,
2705fad3a1d3Sopenharmony_ci    }
2706fad3a1d3Sopenharmony_ci}
2707fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2708fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2709fad3a1d3Sopenharmony_cipub fn fold_pat_slice<F>(f: &mut F, node: PatSlice) -> PatSlice
2710fad3a1d3Sopenharmony_ciwhere
2711fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2712fad3a1d3Sopenharmony_ci{
2713fad3a1d3Sopenharmony_ci    PatSlice {
2714fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2715fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
2716fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_pat(it)),
2717fad3a1d3Sopenharmony_ci    }
2718fad3a1d3Sopenharmony_ci}
2719fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2720fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2721fad3a1d3Sopenharmony_cipub fn fold_pat_struct<F>(f: &mut F, node: PatStruct) -> PatStruct
2722fad3a1d3Sopenharmony_ciwhere
2723fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2724fad3a1d3Sopenharmony_ci{
2725fad3a1d3Sopenharmony_ci    PatStruct {
2726fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2727fad3a1d3Sopenharmony_ci        qself: (node.qself).map(|it| f.fold_qself(it)),
2728fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2729fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
2730fad3a1d3Sopenharmony_ci        fields: FoldHelper::lift(node.fields, |it| f.fold_field_pat(it)),
2731fad3a1d3Sopenharmony_ci        rest: (node.rest).map(|it| f.fold_pat_rest(it)),
2732fad3a1d3Sopenharmony_ci    }
2733fad3a1d3Sopenharmony_ci}
2734fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2735fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2736fad3a1d3Sopenharmony_cipub fn fold_pat_tuple<F>(f: &mut F, node: PatTuple) -> PatTuple
2737fad3a1d3Sopenharmony_ciwhere
2738fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2739fad3a1d3Sopenharmony_ci{
2740fad3a1d3Sopenharmony_ci    PatTuple {
2741fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2742fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2743fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_pat(it)),
2744fad3a1d3Sopenharmony_ci    }
2745fad3a1d3Sopenharmony_ci}
2746fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2747fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2748fad3a1d3Sopenharmony_cipub fn fold_pat_tuple_struct<F>(f: &mut F, node: PatTupleStruct) -> PatTupleStruct
2749fad3a1d3Sopenharmony_ciwhere
2750fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2751fad3a1d3Sopenharmony_ci{
2752fad3a1d3Sopenharmony_ci    PatTupleStruct {
2753fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2754fad3a1d3Sopenharmony_ci        qself: (node.qself).map(|it| f.fold_qself(it)),
2755fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2756fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2757fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_pat(it)),
2758fad3a1d3Sopenharmony_ci    }
2759fad3a1d3Sopenharmony_ci}
2760fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2761fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2762fad3a1d3Sopenharmony_cipub fn fold_pat_type<F>(f: &mut F, node: PatType) -> PatType
2763fad3a1d3Sopenharmony_ciwhere
2764fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2765fad3a1d3Sopenharmony_ci{
2766fad3a1d3Sopenharmony_ci    PatType {
2767fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2768fad3a1d3Sopenharmony_ci        pat: Box::new(f.fold_pat(*node.pat)),
2769fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2770fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2771fad3a1d3Sopenharmony_ci    }
2772fad3a1d3Sopenharmony_ci}
2773fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2774fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2775fad3a1d3Sopenharmony_cipub fn fold_pat_wild<F>(f: &mut F, node: PatWild) -> PatWild
2776fad3a1d3Sopenharmony_ciwhere
2777fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2778fad3a1d3Sopenharmony_ci{
2779fad3a1d3Sopenharmony_ci    PatWild {
2780fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2781fad3a1d3Sopenharmony_ci        underscore_token: node.underscore_token,
2782fad3a1d3Sopenharmony_ci    }
2783fad3a1d3Sopenharmony_ci}
2784fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2785fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2786fad3a1d3Sopenharmony_cipub fn fold_path<F>(f: &mut F, node: Path) -> Path
2787fad3a1d3Sopenharmony_ciwhere
2788fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2789fad3a1d3Sopenharmony_ci{
2790fad3a1d3Sopenharmony_ci    Path {
2791fad3a1d3Sopenharmony_ci        leading_colon: node.leading_colon,
2792fad3a1d3Sopenharmony_ci        segments: FoldHelper::lift(node.segments, |it| f.fold_path_segment(it)),
2793fad3a1d3Sopenharmony_ci    }
2794fad3a1d3Sopenharmony_ci}
2795fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2796fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2797fad3a1d3Sopenharmony_cipub fn fold_path_arguments<F>(f: &mut F, node: PathArguments) -> PathArguments
2798fad3a1d3Sopenharmony_ciwhere
2799fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2800fad3a1d3Sopenharmony_ci{
2801fad3a1d3Sopenharmony_ci    match node {
2802fad3a1d3Sopenharmony_ci        PathArguments::None => PathArguments::None,
2803fad3a1d3Sopenharmony_ci        PathArguments::AngleBracketed(_binding_0) => {
2804fad3a1d3Sopenharmony_ci            PathArguments::AngleBracketed(
2805fad3a1d3Sopenharmony_ci                f.fold_angle_bracketed_generic_arguments(_binding_0),
2806fad3a1d3Sopenharmony_ci            )
2807fad3a1d3Sopenharmony_ci        }
2808fad3a1d3Sopenharmony_ci        PathArguments::Parenthesized(_binding_0) => {
2809fad3a1d3Sopenharmony_ci            PathArguments::Parenthesized(
2810fad3a1d3Sopenharmony_ci                f.fold_parenthesized_generic_arguments(_binding_0),
2811fad3a1d3Sopenharmony_ci            )
2812fad3a1d3Sopenharmony_ci        }
2813fad3a1d3Sopenharmony_ci    }
2814fad3a1d3Sopenharmony_ci}
2815fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2816fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2817fad3a1d3Sopenharmony_cipub fn fold_path_segment<F>(f: &mut F, node: PathSegment) -> PathSegment
2818fad3a1d3Sopenharmony_ciwhere
2819fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2820fad3a1d3Sopenharmony_ci{
2821fad3a1d3Sopenharmony_ci    PathSegment {
2822fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2823fad3a1d3Sopenharmony_ci        arguments: f.fold_path_arguments(node.arguments),
2824fad3a1d3Sopenharmony_ci    }
2825fad3a1d3Sopenharmony_ci}
2826fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2827fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2828fad3a1d3Sopenharmony_cipub fn fold_predicate_lifetime<F>(
2829fad3a1d3Sopenharmony_ci    f: &mut F,
2830fad3a1d3Sopenharmony_ci    node: PredicateLifetime,
2831fad3a1d3Sopenharmony_ci) -> PredicateLifetime
2832fad3a1d3Sopenharmony_ciwhere
2833fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2834fad3a1d3Sopenharmony_ci{
2835fad3a1d3Sopenharmony_ci    PredicateLifetime {
2836fad3a1d3Sopenharmony_ci        lifetime: f.fold_lifetime(node.lifetime),
2837fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2838fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_lifetime(it)),
2839fad3a1d3Sopenharmony_ci    }
2840fad3a1d3Sopenharmony_ci}
2841fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2842fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2843fad3a1d3Sopenharmony_cipub fn fold_predicate_type<F>(f: &mut F, node: PredicateType) -> PredicateType
2844fad3a1d3Sopenharmony_ciwhere
2845fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2846fad3a1d3Sopenharmony_ci{
2847fad3a1d3Sopenharmony_ci    PredicateType {
2848fad3a1d3Sopenharmony_ci        lifetimes: (node.lifetimes).map(|it| f.fold_bound_lifetimes(it)),
2849fad3a1d3Sopenharmony_ci        bounded_ty: f.fold_type(node.bounded_ty),
2850fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2851fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
2852fad3a1d3Sopenharmony_ci    }
2853fad3a1d3Sopenharmony_ci}
2854fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2855fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2856fad3a1d3Sopenharmony_cipub fn fold_qself<F>(f: &mut F, node: QSelf) -> QSelf
2857fad3a1d3Sopenharmony_ciwhere
2858fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2859fad3a1d3Sopenharmony_ci{
2860fad3a1d3Sopenharmony_ci    QSelf {
2861fad3a1d3Sopenharmony_ci        lt_token: node.lt_token,
2862fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2863fad3a1d3Sopenharmony_ci        position: node.position,
2864fad3a1d3Sopenharmony_ci        as_token: node.as_token,
2865fad3a1d3Sopenharmony_ci        gt_token: node.gt_token,
2866fad3a1d3Sopenharmony_ci    }
2867fad3a1d3Sopenharmony_ci}
2868fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2869fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2870fad3a1d3Sopenharmony_cipub fn fold_range_limits<F>(f: &mut F, node: RangeLimits) -> RangeLimits
2871fad3a1d3Sopenharmony_ciwhere
2872fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2873fad3a1d3Sopenharmony_ci{
2874fad3a1d3Sopenharmony_ci    match node {
2875fad3a1d3Sopenharmony_ci        RangeLimits::HalfOpen(_binding_0) => RangeLimits::HalfOpen(_binding_0),
2876fad3a1d3Sopenharmony_ci        RangeLimits::Closed(_binding_0) => RangeLimits::Closed(_binding_0),
2877fad3a1d3Sopenharmony_ci    }
2878fad3a1d3Sopenharmony_ci}
2879fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2880fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2881fad3a1d3Sopenharmony_cipub fn fold_receiver<F>(f: &mut F, node: Receiver) -> Receiver
2882fad3a1d3Sopenharmony_ciwhere
2883fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2884fad3a1d3Sopenharmony_ci{
2885fad3a1d3Sopenharmony_ci    Receiver {
2886fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2887fad3a1d3Sopenharmony_ci        reference: (node.reference)
2888fad3a1d3Sopenharmony_ci            .map(|it| ((it).0, ((it).1).map(|it| f.fold_lifetime(it)))),
2889fad3a1d3Sopenharmony_ci        mutability: node.mutability,
2890fad3a1d3Sopenharmony_ci        self_token: node.self_token,
2891fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
2892fad3a1d3Sopenharmony_ci        ty: Box::new(f.fold_type(*node.ty)),
2893fad3a1d3Sopenharmony_ci    }
2894fad3a1d3Sopenharmony_ci}
2895fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2896fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2897fad3a1d3Sopenharmony_cipub fn fold_return_type<F>(f: &mut F, node: ReturnType) -> ReturnType
2898fad3a1d3Sopenharmony_ciwhere
2899fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2900fad3a1d3Sopenharmony_ci{
2901fad3a1d3Sopenharmony_ci    match node {
2902fad3a1d3Sopenharmony_ci        ReturnType::Default => ReturnType::Default,
2903fad3a1d3Sopenharmony_ci        ReturnType::Type(_binding_0, _binding_1) => {
2904fad3a1d3Sopenharmony_ci            ReturnType::Type(_binding_0, Box::new(f.fold_type(*_binding_1)))
2905fad3a1d3Sopenharmony_ci        }
2906fad3a1d3Sopenharmony_ci    }
2907fad3a1d3Sopenharmony_ci}
2908fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2909fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2910fad3a1d3Sopenharmony_cipub fn fold_signature<F>(f: &mut F, node: Signature) -> Signature
2911fad3a1d3Sopenharmony_ciwhere
2912fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2913fad3a1d3Sopenharmony_ci{
2914fad3a1d3Sopenharmony_ci    Signature {
2915fad3a1d3Sopenharmony_ci        constness: node.constness,
2916fad3a1d3Sopenharmony_ci        asyncness: node.asyncness,
2917fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
2918fad3a1d3Sopenharmony_ci        abi: (node.abi).map(|it| f.fold_abi(it)),
2919fad3a1d3Sopenharmony_ci        fn_token: node.fn_token,
2920fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
2921fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
2922fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2923fad3a1d3Sopenharmony_ci        inputs: FoldHelper::lift(node.inputs, |it| f.fold_fn_arg(it)),
2924fad3a1d3Sopenharmony_ci        variadic: (node.variadic).map(|it| f.fold_variadic(it)),
2925fad3a1d3Sopenharmony_ci        output: f.fold_return_type(node.output),
2926fad3a1d3Sopenharmony_ci    }
2927fad3a1d3Sopenharmony_ci}
2928fad3a1d3Sopenharmony_cipub fn fold_span<F>(f: &mut F, node: Span) -> Span
2929fad3a1d3Sopenharmony_ciwhere
2930fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2931fad3a1d3Sopenharmony_ci{
2932fad3a1d3Sopenharmony_ci    node
2933fad3a1d3Sopenharmony_ci}
2934fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2935fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2936fad3a1d3Sopenharmony_cipub fn fold_static_mutability<F>(f: &mut F, node: StaticMutability) -> StaticMutability
2937fad3a1d3Sopenharmony_ciwhere
2938fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2939fad3a1d3Sopenharmony_ci{
2940fad3a1d3Sopenharmony_ci    match node {
2941fad3a1d3Sopenharmony_ci        StaticMutability::Mut(_binding_0) => StaticMutability::Mut(_binding_0),
2942fad3a1d3Sopenharmony_ci        StaticMutability::None => StaticMutability::None,
2943fad3a1d3Sopenharmony_ci    }
2944fad3a1d3Sopenharmony_ci}
2945fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2946fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2947fad3a1d3Sopenharmony_cipub fn fold_stmt<F>(f: &mut F, node: Stmt) -> Stmt
2948fad3a1d3Sopenharmony_ciwhere
2949fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2950fad3a1d3Sopenharmony_ci{
2951fad3a1d3Sopenharmony_ci    match node {
2952fad3a1d3Sopenharmony_ci        Stmt::Local(_binding_0) => Stmt::Local(f.fold_local(_binding_0)),
2953fad3a1d3Sopenharmony_ci        Stmt::Item(_binding_0) => Stmt::Item(f.fold_item(_binding_0)),
2954fad3a1d3Sopenharmony_ci        Stmt::Expr(_binding_0, _binding_1) => {
2955fad3a1d3Sopenharmony_ci            Stmt::Expr(f.fold_expr(_binding_0), _binding_1)
2956fad3a1d3Sopenharmony_ci        }
2957fad3a1d3Sopenharmony_ci        Stmt::Macro(_binding_0) => Stmt::Macro(f.fold_stmt_macro(_binding_0)),
2958fad3a1d3Sopenharmony_ci    }
2959fad3a1d3Sopenharmony_ci}
2960fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
2961fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
2962fad3a1d3Sopenharmony_cipub fn fold_stmt_macro<F>(f: &mut F, node: StmtMacro) -> StmtMacro
2963fad3a1d3Sopenharmony_ciwhere
2964fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2965fad3a1d3Sopenharmony_ci{
2966fad3a1d3Sopenharmony_ci    StmtMacro {
2967fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
2968fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
2969fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
2970fad3a1d3Sopenharmony_ci    }
2971fad3a1d3Sopenharmony_ci}
2972fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2973fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2974fad3a1d3Sopenharmony_cipub fn fold_trait_bound<F>(f: &mut F, node: TraitBound) -> TraitBound
2975fad3a1d3Sopenharmony_ciwhere
2976fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2977fad3a1d3Sopenharmony_ci{
2978fad3a1d3Sopenharmony_ci    TraitBound {
2979fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
2980fad3a1d3Sopenharmony_ci        modifier: f.fold_trait_bound_modifier(node.modifier),
2981fad3a1d3Sopenharmony_ci        lifetimes: (node.lifetimes).map(|it| f.fold_bound_lifetimes(it)),
2982fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
2983fad3a1d3Sopenharmony_ci    }
2984fad3a1d3Sopenharmony_ci}
2985fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
2986fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
2987fad3a1d3Sopenharmony_cipub fn fold_trait_bound_modifier<F>(
2988fad3a1d3Sopenharmony_ci    f: &mut F,
2989fad3a1d3Sopenharmony_ci    node: TraitBoundModifier,
2990fad3a1d3Sopenharmony_ci) -> TraitBoundModifier
2991fad3a1d3Sopenharmony_ciwhere
2992fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
2993fad3a1d3Sopenharmony_ci{
2994fad3a1d3Sopenharmony_ci    match node {
2995fad3a1d3Sopenharmony_ci        TraitBoundModifier::None => TraitBoundModifier::None,
2996fad3a1d3Sopenharmony_ci        TraitBoundModifier::Maybe(_binding_0) => TraitBoundModifier::Maybe(_binding_0),
2997fad3a1d3Sopenharmony_ci    }
2998fad3a1d3Sopenharmony_ci}
2999fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3000fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3001fad3a1d3Sopenharmony_cipub fn fold_trait_item<F>(f: &mut F, node: TraitItem) -> TraitItem
3002fad3a1d3Sopenharmony_ciwhere
3003fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3004fad3a1d3Sopenharmony_ci{
3005fad3a1d3Sopenharmony_ci    match node {
3006fad3a1d3Sopenharmony_ci        TraitItem::Const(_binding_0) => {
3007fad3a1d3Sopenharmony_ci            TraitItem::Const(f.fold_trait_item_const(_binding_0))
3008fad3a1d3Sopenharmony_ci        }
3009fad3a1d3Sopenharmony_ci        TraitItem::Fn(_binding_0) => TraitItem::Fn(f.fold_trait_item_fn(_binding_0)),
3010fad3a1d3Sopenharmony_ci        TraitItem::Type(_binding_0) => {
3011fad3a1d3Sopenharmony_ci            TraitItem::Type(f.fold_trait_item_type(_binding_0))
3012fad3a1d3Sopenharmony_ci        }
3013fad3a1d3Sopenharmony_ci        TraitItem::Macro(_binding_0) => {
3014fad3a1d3Sopenharmony_ci            TraitItem::Macro(f.fold_trait_item_macro(_binding_0))
3015fad3a1d3Sopenharmony_ci        }
3016fad3a1d3Sopenharmony_ci        TraitItem::Verbatim(_binding_0) => TraitItem::Verbatim(_binding_0),
3017fad3a1d3Sopenharmony_ci    }
3018fad3a1d3Sopenharmony_ci}
3019fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3020fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3021fad3a1d3Sopenharmony_cipub fn fold_trait_item_const<F>(f: &mut F, node: TraitItemConst) -> TraitItemConst
3022fad3a1d3Sopenharmony_ciwhere
3023fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3024fad3a1d3Sopenharmony_ci{
3025fad3a1d3Sopenharmony_ci    TraitItemConst {
3026fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3027fad3a1d3Sopenharmony_ci        const_token: node.const_token,
3028fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3029fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
3030fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
3031fad3a1d3Sopenharmony_ci        ty: f.fold_type(node.ty),
3032fad3a1d3Sopenharmony_ci        default: (node.default).map(|it| ((it).0, f.fold_expr((it).1))),
3033fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
3034fad3a1d3Sopenharmony_ci    }
3035fad3a1d3Sopenharmony_ci}
3036fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3037fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3038fad3a1d3Sopenharmony_cipub fn fold_trait_item_fn<F>(f: &mut F, node: TraitItemFn) -> TraitItemFn
3039fad3a1d3Sopenharmony_ciwhere
3040fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3041fad3a1d3Sopenharmony_ci{
3042fad3a1d3Sopenharmony_ci    TraitItemFn {
3043fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3044fad3a1d3Sopenharmony_ci        sig: f.fold_signature(node.sig),
3045fad3a1d3Sopenharmony_ci        default: (node.default).map(|it| f.fold_block(it)),
3046fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
3047fad3a1d3Sopenharmony_ci    }
3048fad3a1d3Sopenharmony_ci}
3049fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3050fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3051fad3a1d3Sopenharmony_cipub fn fold_trait_item_macro<F>(f: &mut F, node: TraitItemMacro) -> TraitItemMacro
3052fad3a1d3Sopenharmony_ciwhere
3053fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3054fad3a1d3Sopenharmony_ci{
3055fad3a1d3Sopenharmony_ci    TraitItemMacro {
3056fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3057fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
3058fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
3059fad3a1d3Sopenharmony_ci    }
3060fad3a1d3Sopenharmony_ci}
3061fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3062fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3063fad3a1d3Sopenharmony_cipub fn fold_trait_item_type<F>(f: &mut F, node: TraitItemType) -> TraitItemType
3064fad3a1d3Sopenharmony_ciwhere
3065fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3066fad3a1d3Sopenharmony_ci{
3067fad3a1d3Sopenharmony_ci    TraitItemType {
3068fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3069fad3a1d3Sopenharmony_ci        type_token: node.type_token,
3070fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3071fad3a1d3Sopenharmony_ci        generics: f.fold_generics(node.generics),
3072fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
3073fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
3074fad3a1d3Sopenharmony_ci        default: (node.default).map(|it| ((it).0, f.fold_type((it).1))),
3075fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
3076fad3a1d3Sopenharmony_ci    }
3077fad3a1d3Sopenharmony_ci}
3078fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3079fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3080fad3a1d3Sopenharmony_cipub fn fold_type<F>(f: &mut F, node: Type) -> Type
3081fad3a1d3Sopenharmony_ciwhere
3082fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3083fad3a1d3Sopenharmony_ci{
3084fad3a1d3Sopenharmony_ci    match node {
3085fad3a1d3Sopenharmony_ci        Type::Array(_binding_0) => Type::Array(f.fold_type_array(_binding_0)),
3086fad3a1d3Sopenharmony_ci        Type::BareFn(_binding_0) => Type::BareFn(f.fold_type_bare_fn(_binding_0)),
3087fad3a1d3Sopenharmony_ci        Type::Group(_binding_0) => Type::Group(f.fold_type_group(_binding_0)),
3088fad3a1d3Sopenharmony_ci        Type::ImplTrait(_binding_0) => {
3089fad3a1d3Sopenharmony_ci            Type::ImplTrait(f.fold_type_impl_trait(_binding_0))
3090fad3a1d3Sopenharmony_ci        }
3091fad3a1d3Sopenharmony_ci        Type::Infer(_binding_0) => Type::Infer(f.fold_type_infer(_binding_0)),
3092fad3a1d3Sopenharmony_ci        Type::Macro(_binding_0) => Type::Macro(f.fold_type_macro(_binding_0)),
3093fad3a1d3Sopenharmony_ci        Type::Never(_binding_0) => Type::Never(f.fold_type_never(_binding_0)),
3094fad3a1d3Sopenharmony_ci        Type::Paren(_binding_0) => Type::Paren(f.fold_type_paren(_binding_0)),
3095fad3a1d3Sopenharmony_ci        Type::Path(_binding_0) => Type::Path(f.fold_type_path(_binding_0)),
3096fad3a1d3Sopenharmony_ci        Type::Ptr(_binding_0) => Type::Ptr(f.fold_type_ptr(_binding_0)),
3097fad3a1d3Sopenharmony_ci        Type::Reference(_binding_0) => Type::Reference(f.fold_type_reference(_binding_0)),
3098fad3a1d3Sopenharmony_ci        Type::Slice(_binding_0) => Type::Slice(f.fold_type_slice(_binding_0)),
3099fad3a1d3Sopenharmony_ci        Type::TraitObject(_binding_0) => {
3100fad3a1d3Sopenharmony_ci            Type::TraitObject(f.fold_type_trait_object(_binding_0))
3101fad3a1d3Sopenharmony_ci        }
3102fad3a1d3Sopenharmony_ci        Type::Tuple(_binding_0) => Type::Tuple(f.fold_type_tuple(_binding_0)),
3103fad3a1d3Sopenharmony_ci        Type::Verbatim(_binding_0) => Type::Verbatim(_binding_0),
3104fad3a1d3Sopenharmony_ci    }
3105fad3a1d3Sopenharmony_ci}
3106fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3107fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3108fad3a1d3Sopenharmony_cipub fn fold_type_array<F>(f: &mut F, node: TypeArray) -> TypeArray
3109fad3a1d3Sopenharmony_ciwhere
3110fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3111fad3a1d3Sopenharmony_ci{
3112fad3a1d3Sopenharmony_ci    TypeArray {
3113fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
3114fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3115fad3a1d3Sopenharmony_ci        semi_token: node.semi_token,
3116fad3a1d3Sopenharmony_ci        len: f.fold_expr(node.len),
3117fad3a1d3Sopenharmony_ci    }
3118fad3a1d3Sopenharmony_ci}
3119fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3120fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3121fad3a1d3Sopenharmony_cipub fn fold_type_bare_fn<F>(f: &mut F, node: TypeBareFn) -> TypeBareFn
3122fad3a1d3Sopenharmony_ciwhere
3123fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3124fad3a1d3Sopenharmony_ci{
3125fad3a1d3Sopenharmony_ci    TypeBareFn {
3126fad3a1d3Sopenharmony_ci        lifetimes: (node.lifetimes).map(|it| f.fold_bound_lifetimes(it)),
3127fad3a1d3Sopenharmony_ci        unsafety: node.unsafety,
3128fad3a1d3Sopenharmony_ci        abi: (node.abi).map(|it| f.fold_abi(it)),
3129fad3a1d3Sopenharmony_ci        fn_token: node.fn_token,
3130fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
3131fad3a1d3Sopenharmony_ci        inputs: FoldHelper::lift(node.inputs, |it| f.fold_bare_fn_arg(it)),
3132fad3a1d3Sopenharmony_ci        variadic: (node.variadic).map(|it| f.fold_bare_variadic(it)),
3133fad3a1d3Sopenharmony_ci        output: f.fold_return_type(node.output),
3134fad3a1d3Sopenharmony_ci    }
3135fad3a1d3Sopenharmony_ci}
3136fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3137fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3138fad3a1d3Sopenharmony_cipub fn fold_type_group<F>(f: &mut F, node: TypeGroup) -> TypeGroup
3139fad3a1d3Sopenharmony_ciwhere
3140fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3141fad3a1d3Sopenharmony_ci{
3142fad3a1d3Sopenharmony_ci    TypeGroup {
3143fad3a1d3Sopenharmony_ci        group_token: node.group_token,
3144fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3145fad3a1d3Sopenharmony_ci    }
3146fad3a1d3Sopenharmony_ci}
3147fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3148fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3149fad3a1d3Sopenharmony_cipub fn fold_type_impl_trait<F>(f: &mut F, node: TypeImplTrait) -> TypeImplTrait
3150fad3a1d3Sopenharmony_ciwhere
3151fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3152fad3a1d3Sopenharmony_ci{
3153fad3a1d3Sopenharmony_ci    TypeImplTrait {
3154fad3a1d3Sopenharmony_ci        impl_token: node.impl_token,
3155fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
3156fad3a1d3Sopenharmony_ci    }
3157fad3a1d3Sopenharmony_ci}
3158fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3159fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3160fad3a1d3Sopenharmony_cipub fn fold_type_infer<F>(f: &mut F, node: TypeInfer) -> TypeInfer
3161fad3a1d3Sopenharmony_ciwhere
3162fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3163fad3a1d3Sopenharmony_ci{
3164fad3a1d3Sopenharmony_ci    TypeInfer {
3165fad3a1d3Sopenharmony_ci        underscore_token: node.underscore_token,
3166fad3a1d3Sopenharmony_ci    }
3167fad3a1d3Sopenharmony_ci}
3168fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3169fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3170fad3a1d3Sopenharmony_cipub fn fold_type_macro<F>(f: &mut F, node: TypeMacro) -> TypeMacro
3171fad3a1d3Sopenharmony_ciwhere
3172fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3173fad3a1d3Sopenharmony_ci{
3174fad3a1d3Sopenharmony_ci    TypeMacro {
3175fad3a1d3Sopenharmony_ci        mac: f.fold_macro(node.mac),
3176fad3a1d3Sopenharmony_ci    }
3177fad3a1d3Sopenharmony_ci}
3178fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3179fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3180fad3a1d3Sopenharmony_cipub fn fold_type_never<F>(f: &mut F, node: TypeNever) -> TypeNever
3181fad3a1d3Sopenharmony_ciwhere
3182fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3183fad3a1d3Sopenharmony_ci{
3184fad3a1d3Sopenharmony_ci    TypeNever {
3185fad3a1d3Sopenharmony_ci        bang_token: node.bang_token,
3186fad3a1d3Sopenharmony_ci    }
3187fad3a1d3Sopenharmony_ci}
3188fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3189fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3190fad3a1d3Sopenharmony_cipub fn fold_type_param<F>(f: &mut F, node: TypeParam) -> TypeParam
3191fad3a1d3Sopenharmony_ciwhere
3192fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3193fad3a1d3Sopenharmony_ci{
3194fad3a1d3Sopenharmony_ci    TypeParam {
3195fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3196fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3197fad3a1d3Sopenharmony_ci        colon_token: node.colon_token,
3198fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
3199fad3a1d3Sopenharmony_ci        eq_token: node.eq_token,
3200fad3a1d3Sopenharmony_ci        default: (node.default).map(|it| f.fold_type(it)),
3201fad3a1d3Sopenharmony_ci    }
3202fad3a1d3Sopenharmony_ci}
3203fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3204fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3205fad3a1d3Sopenharmony_cipub fn fold_type_param_bound<F>(f: &mut F, node: TypeParamBound) -> TypeParamBound
3206fad3a1d3Sopenharmony_ciwhere
3207fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3208fad3a1d3Sopenharmony_ci{
3209fad3a1d3Sopenharmony_ci    match node {
3210fad3a1d3Sopenharmony_ci        TypeParamBound::Trait(_binding_0) => {
3211fad3a1d3Sopenharmony_ci            TypeParamBound::Trait(f.fold_trait_bound(_binding_0))
3212fad3a1d3Sopenharmony_ci        }
3213fad3a1d3Sopenharmony_ci        TypeParamBound::Lifetime(_binding_0) => {
3214fad3a1d3Sopenharmony_ci            TypeParamBound::Lifetime(f.fold_lifetime(_binding_0))
3215fad3a1d3Sopenharmony_ci        }
3216fad3a1d3Sopenharmony_ci        TypeParamBound::Verbatim(_binding_0) => TypeParamBound::Verbatim(_binding_0),
3217fad3a1d3Sopenharmony_ci    }
3218fad3a1d3Sopenharmony_ci}
3219fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3220fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3221fad3a1d3Sopenharmony_cipub fn fold_type_paren<F>(f: &mut F, node: TypeParen) -> TypeParen
3222fad3a1d3Sopenharmony_ciwhere
3223fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3224fad3a1d3Sopenharmony_ci{
3225fad3a1d3Sopenharmony_ci    TypeParen {
3226fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
3227fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3228fad3a1d3Sopenharmony_ci    }
3229fad3a1d3Sopenharmony_ci}
3230fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3231fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3232fad3a1d3Sopenharmony_cipub fn fold_type_path<F>(f: &mut F, node: TypePath) -> TypePath
3233fad3a1d3Sopenharmony_ciwhere
3234fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3235fad3a1d3Sopenharmony_ci{
3236fad3a1d3Sopenharmony_ci    TypePath {
3237fad3a1d3Sopenharmony_ci        qself: (node.qself).map(|it| f.fold_qself(it)),
3238fad3a1d3Sopenharmony_ci        path: f.fold_path(node.path),
3239fad3a1d3Sopenharmony_ci    }
3240fad3a1d3Sopenharmony_ci}
3241fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3242fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3243fad3a1d3Sopenharmony_cipub fn fold_type_ptr<F>(f: &mut F, node: TypePtr) -> TypePtr
3244fad3a1d3Sopenharmony_ciwhere
3245fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3246fad3a1d3Sopenharmony_ci{
3247fad3a1d3Sopenharmony_ci    TypePtr {
3248fad3a1d3Sopenharmony_ci        star_token: node.star_token,
3249fad3a1d3Sopenharmony_ci        const_token: node.const_token,
3250fad3a1d3Sopenharmony_ci        mutability: node.mutability,
3251fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3252fad3a1d3Sopenharmony_ci    }
3253fad3a1d3Sopenharmony_ci}
3254fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3255fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3256fad3a1d3Sopenharmony_cipub fn fold_type_reference<F>(f: &mut F, node: TypeReference) -> TypeReference
3257fad3a1d3Sopenharmony_ciwhere
3258fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3259fad3a1d3Sopenharmony_ci{
3260fad3a1d3Sopenharmony_ci    TypeReference {
3261fad3a1d3Sopenharmony_ci        and_token: node.and_token,
3262fad3a1d3Sopenharmony_ci        lifetime: (node.lifetime).map(|it| f.fold_lifetime(it)),
3263fad3a1d3Sopenharmony_ci        mutability: node.mutability,
3264fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3265fad3a1d3Sopenharmony_ci    }
3266fad3a1d3Sopenharmony_ci}
3267fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3268fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3269fad3a1d3Sopenharmony_cipub fn fold_type_slice<F>(f: &mut F, node: TypeSlice) -> TypeSlice
3270fad3a1d3Sopenharmony_ciwhere
3271fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3272fad3a1d3Sopenharmony_ci{
3273fad3a1d3Sopenharmony_ci    TypeSlice {
3274fad3a1d3Sopenharmony_ci        bracket_token: node.bracket_token,
3275fad3a1d3Sopenharmony_ci        elem: Box::new(f.fold_type(*node.elem)),
3276fad3a1d3Sopenharmony_ci    }
3277fad3a1d3Sopenharmony_ci}
3278fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3279fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3280fad3a1d3Sopenharmony_cipub fn fold_type_trait_object<F>(f: &mut F, node: TypeTraitObject) -> TypeTraitObject
3281fad3a1d3Sopenharmony_ciwhere
3282fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3283fad3a1d3Sopenharmony_ci{
3284fad3a1d3Sopenharmony_ci    TypeTraitObject {
3285fad3a1d3Sopenharmony_ci        dyn_token: node.dyn_token,
3286fad3a1d3Sopenharmony_ci        bounds: FoldHelper::lift(node.bounds, |it| f.fold_type_param_bound(it)),
3287fad3a1d3Sopenharmony_ci    }
3288fad3a1d3Sopenharmony_ci}
3289fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3290fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3291fad3a1d3Sopenharmony_cipub fn fold_type_tuple<F>(f: &mut F, node: TypeTuple) -> TypeTuple
3292fad3a1d3Sopenharmony_ciwhere
3293fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3294fad3a1d3Sopenharmony_ci{
3295fad3a1d3Sopenharmony_ci    TypeTuple {
3296fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
3297fad3a1d3Sopenharmony_ci        elems: FoldHelper::lift(node.elems, |it| f.fold_type(it)),
3298fad3a1d3Sopenharmony_ci    }
3299fad3a1d3Sopenharmony_ci}
3300fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3301fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3302fad3a1d3Sopenharmony_cipub fn fold_un_op<F>(f: &mut F, node: UnOp) -> UnOp
3303fad3a1d3Sopenharmony_ciwhere
3304fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3305fad3a1d3Sopenharmony_ci{
3306fad3a1d3Sopenharmony_ci    match node {
3307fad3a1d3Sopenharmony_ci        UnOp::Deref(_binding_0) => UnOp::Deref(_binding_0),
3308fad3a1d3Sopenharmony_ci        UnOp::Not(_binding_0) => UnOp::Not(_binding_0),
3309fad3a1d3Sopenharmony_ci        UnOp::Neg(_binding_0) => UnOp::Neg(_binding_0),
3310fad3a1d3Sopenharmony_ci    }
3311fad3a1d3Sopenharmony_ci}
3312fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3313fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3314fad3a1d3Sopenharmony_cipub fn fold_use_glob<F>(f: &mut F, node: UseGlob) -> UseGlob
3315fad3a1d3Sopenharmony_ciwhere
3316fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3317fad3a1d3Sopenharmony_ci{
3318fad3a1d3Sopenharmony_ci    UseGlob {
3319fad3a1d3Sopenharmony_ci        star_token: node.star_token,
3320fad3a1d3Sopenharmony_ci    }
3321fad3a1d3Sopenharmony_ci}
3322fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3323fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3324fad3a1d3Sopenharmony_cipub fn fold_use_group<F>(f: &mut F, node: UseGroup) -> UseGroup
3325fad3a1d3Sopenharmony_ciwhere
3326fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3327fad3a1d3Sopenharmony_ci{
3328fad3a1d3Sopenharmony_ci    UseGroup {
3329fad3a1d3Sopenharmony_ci        brace_token: node.brace_token,
3330fad3a1d3Sopenharmony_ci        items: FoldHelper::lift(node.items, |it| f.fold_use_tree(it)),
3331fad3a1d3Sopenharmony_ci    }
3332fad3a1d3Sopenharmony_ci}
3333fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3334fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3335fad3a1d3Sopenharmony_cipub fn fold_use_name<F>(f: &mut F, node: UseName) -> UseName
3336fad3a1d3Sopenharmony_ciwhere
3337fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3338fad3a1d3Sopenharmony_ci{
3339fad3a1d3Sopenharmony_ci    UseName {
3340fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3341fad3a1d3Sopenharmony_ci    }
3342fad3a1d3Sopenharmony_ci}
3343fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3344fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3345fad3a1d3Sopenharmony_cipub fn fold_use_path<F>(f: &mut F, node: UsePath) -> UsePath
3346fad3a1d3Sopenharmony_ciwhere
3347fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3348fad3a1d3Sopenharmony_ci{
3349fad3a1d3Sopenharmony_ci    UsePath {
3350fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3351fad3a1d3Sopenharmony_ci        colon2_token: node.colon2_token,
3352fad3a1d3Sopenharmony_ci        tree: Box::new(f.fold_use_tree(*node.tree)),
3353fad3a1d3Sopenharmony_ci    }
3354fad3a1d3Sopenharmony_ci}
3355fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3356fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3357fad3a1d3Sopenharmony_cipub fn fold_use_rename<F>(f: &mut F, node: UseRename) -> UseRename
3358fad3a1d3Sopenharmony_ciwhere
3359fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3360fad3a1d3Sopenharmony_ci{
3361fad3a1d3Sopenharmony_ci    UseRename {
3362fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3363fad3a1d3Sopenharmony_ci        as_token: node.as_token,
3364fad3a1d3Sopenharmony_ci        rename: f.fold_ident(node.rename),
3365fad3a1d3Sopenharmony_ci    }
3366fad3a1d3Sopenharmony_ci}
3367fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3368fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3369fad3a1d3Sopenharmony_cipub fn fold_use_tree<F>(f: &mut F, node: UseTree) -> UseTree
3370fad3a1d3Sopenharmony_ciwhere
3371fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3372fad3a1d3Sopenharmony_ci{
3373fad3a1d3Sopenharmony_ci    match node {
3374fad3a1d3Sopenharmony_ci        UseTree::Path(_binding_0) => UseTree::Path(f.fold_use_path(_binding_0)),
3375fad3a1d3Sopenharmony_ci        UseTree::Name(_binding_0) => UseTree::Name(f.fold_use_name(_binding_0)),
3376fad3a1d3Sopenharmony_ci        UseTree::Rename(_binding_0) => UseTree::Rename(f.fold_use_rename(_binding_0)),
3377fad3a1d3Sopenharmony_ci        UseTree::Glob(_binding_0) => UseTree::Glob(f.fold_use_glob(_binding_0)),
3378fad3a1d3Sopenharmony_ci        UseTree::Group(_binding_0) => UseTree::Group(f.fold_use_group(_binding_0)),
3379fad3a1d3Sopenharmony_ci    }
3380fad3a1d3Sopenharmony_ci}
3381fad3a1d3Sopenharmony_ci#[cfg(feature = "full")]
3382fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(feature = "full")))]
3383fad3a1d3Sopenharmony_cipub fn fold_variadic<F>(f: &mut F, node: Variadic) -> Variadic
3384fad3a1d3Sopenharmony_ciwhere
3385fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3386fad3a1d3Sopenharmony_ci{
3387fad3a1d3Sopenharmony_ci    Variadic {
3388fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3389fad3a1d3Sopenharmony_ci        pat: (node.pat).map(|it| (Box::new(f.fold_pat(*(it).0)), (it).1)),
3390fad3a1d3Sopenharmony_ci        dots: node.dots,
3391fad3a1d3Sopenharmony_ci        comma: node.comma,
3392fad3a1d3Sopenharmony_ci    }
3393fad3a1d3Sopenharmony_ci}
3394fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3395fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3396fad3a1d3Sopenharmony_cipub fn fold_variant<F>(f: &mut F, node: Variant) -> Variant
3397fad3a1d3Sopenharmony_ciwhere
3398fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3399fad3a1d3Sopenharmony_ci{
3400fad3a1d3Sopenharmony_ci    Variant {
3401fad3a1d3Sopenharmony_ci        attrs: FoldHelper::lift(node.attrs, |it| f.fold_attribute(it)),
3402fad3a1d3Sopenharmony_ci        ident: f.fold_ident(node.ident),
3403fad3a1d3Sopenharmony_ci        fields: f.fold_fields(node.fields),
3404fad3a1d3Sopenharmony_ci        discriminant: (node.discriminant).map(|it| ((it).0, f.fold_expr((it).1))),
3405fad3a1d3Sopenharmony_ci    }
3406fad3a1d3Sopenharmony_ci}
3407fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3408fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3409fad3a1d3Sopenharmony_cipub fn fold_vis_restricted<F>(f: &mut F, node: VisRestricted) -> VisRestricted
3410fad3a1d3Sopenharmony_ciwhere
3411fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3412fad3a1d3Sopenharmony_ci{
3413fad3a1d3Sopenharmony_ci    VisRestricted {
3414fad3a1d3Sopenharmony_ci        pub_token: node.pub_token,
3415fad3a1d3Sopenharmony_ci        paren_token: node.paren_token,
3416fad3a1d3Sopenharmony_ci        in_token: node.in_token,
3417fad3a1d3Sopenharmony_ci        path: Box::new(f.fold_path(*node.path)),
3418fad3a1d3Sopenharmony_ci    }
3419fad3a1d3Sopenharmony_ci}
3420fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3421fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3422fad3a1d3Sopenharmony_cipub fn fold_visibility<F>(f: &mut F, node: Visibility) -> Visibility
3423fad3a1d3Sopenharmony_ciwhere
3424fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3425fad3a1d3Sopenharmony_ci{
3426fad3a1d3Sopenharmony_ci    match node {
3427fad3a1d3Sopenharmony_ci        Visibility::Public(_binding_0) => Visibility::Public(_binding_0),
3428fad3a1d3Sopenharmony_ci        Visibility::Restricted(_binding_0) => {
3429fad3a1d3Sopenharmony_ci            Visibility::Restricted(f.fold_vis_restricted(_binding_0))
3430fad3a1d3Sopenharmony_ci        }
3431fad3a1d3Sopenharmony_ci        Visibility::Inherited => Visibility::Inherited,
3432fad3a1d3Sopenharmony_ci    }
3433fad3a1d3Sopenharmony_ci}
3434fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3435fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3436fad3a1d3Sopenharmony_cipub fn fold_where_clause<F>(f: &mut F, node: WhereClause) -> WhereClause
3437fad3a1d3Sopenharmony_ciwhere
3438fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3439fad3a1d3Sopenharmony_ci{
3440fad3a1d3Sopenharmony_ci    WhereClause {
3441fad3a1d3Sopenharmony_ci        where_token: node.where_token,
3442fad3a1d3Sopenharmony_ci        predicates: FoldHelper::lift(node.predicates, |it| f.fold_where_predicate(it)),
3443fad3a1d3Sopenharmony_ci    }
3444fad3a1d3Sopenharmony_ci}
3445fad3a1d3Sopenharmony_ci#[cfg(any(feature = "derive", feature = "full"))]
3446fad3a1d3Sopenharmony_ci#[cfg_attr(doc_cfg, doc(cfg(any(feature = "derive", feature = "full"))))]
3447fad3a1d3Sopenharmony_cipub fn fold_where_predicate<F>(f: &mut F, node: WherePredicate) -> WherePredicate
3448fad3a1d3Sopenharmony_ciwhere
3449fad3a1d3Sopenharmony_ci    F: Fold + ?Sized,
3450fad3a1d3Sopenharmony_ci{
3451fad3a1d3Sopenharmony_ci    match node {
3452fad3a1d3Sopenharmony_ci        WherePredicate::Lifetime(_binding_0) => {
3453fad3a1d3Sopenharmony_ci            WherePredicate::Lifetime(f.fold_predicate_lifetime(_binding_0))
3454fad3a1d3Sopenharmony_ci        }
3455fad3a1d3Sopenharmony_ci        WherePredicate::Type(_binding_0) => {
3456fad3a1d3Sopenharmony_ci            WherePredicate::Type(f.fold_predicate_type(_binding_0))
3457fad3a1d3Sopenharmony_ci        }
3458fad3a1d3Sopenharmony_ci    }
3459fad3a1d3Sopenharmony_ci}
3460