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