@@ -46,15 +46,12 @@ pub fn eq_pat(l: &Pat, r: &Pat) -> bool {
46
46
| ( Ref ( l, Mutability :: Not ) , Ref ( r, Mutability :: Not ) )
47
47
| ( Ref ( l, Mutability :: Mut ) , Ref ( r, Mutability :: Mut ) ) => eq_pat ( l, r) ,
48
48
( Tuple ( l) , Tuple ( r) ) | ( Slice ( l) , Slice ( r) ) => over ( l, r, |l, r| eq_pat ( l, r) ) ,
49
- ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, |l , r| eq_qself ( l , r ) ) && eq_path ( lp, rp) ,
49
+ ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, eq_qself) && eq_path ( lp, rp) ,
50
50
( TupleStruct ( lqself, lp, lfs) , TupleStruct ( rqself, rp, rfs) ) => {
51
51
eq_maybe_qself ( lqself, rqself) && eq_path ( lp, rp) && over ( lfs, rfs, |l, r| eq_pat ( l, r) )
52
52
} ,
53
53
( Struct ( lqself, lp, lfs, lr) , Struct ( rqself, rp, rfs, rr) ) => {
54
- lr == rr
55
- && eq_maybe_qself ( lqself, rqself)
56
- && eq_path ( lp, rp)
57
- && unordered_over ( lfs, rfs, |lf, rf| eq_field_pat ( lf, rf) )
54
+ lr == rr && eq_maybe_qself ( lqself, rqself) && eq_path ( lp, rp) && unordered_over ( lfs, rfs, eq_field_pat)
58
55
} ,
59
56
( Or ( ls) , Or ( rs) ) => unordered_over ( ls, rs, |l, r| eq_pat ( l, r) ) ,
60
57
( MacCall ( l) , MacCall ( r) ) => eq_mac_call ( l, r) ,
@@ -76,7 +73,7 @@ pub fn eq_field_pat(l: &PatField, r: &PatField) -> bool {
76
73
l. is_placeholder == r. is_placeholder
77
74
&& eq_id ( l. ident , r. ident )
78
75
&& eq_pat ( & l. pat , & r. pat )
79
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
76
+ && over ( & l. attrs , & r. attrs , eq_attr)
80
77
}
81
78
82
79
pub fn eq_qself ( l : & QSelf , r : & QSelf ) -> bool {
@@ -92,7 +89,7 @@ pub fn eq_maybe_qself(l: &Option<QSelf>, r: &Option<QSelf>) -> bool {
92
89
}
93
90
94
91
pub fn eq_path ( l : & Path , r : & Path ) -> bool {
95
- over ( & l. segments , & r. segments , |l , r| eq_path_seg ( l , r ) )
92
+ over ( & l. segments , & r. segments , eq_path_seg)
96
93
}
97
94
98
95
pub fn eq_path_seg ( l : & PathSegment , r : & PathSegment ) -> bool {
@@ -101,9 +98,7 @@ pub fn eq_path_seg(l: &PathSegment, r: &PathSegment) -> bool {
101
98
102
99
pub fn eq_generic_args ( l : & GenericArgs , r : & GenericArgs ) -> bool {
103
100
match ( l, r) {
104
- ( GenericArgs :: AngleBracketed ( l) , GenericArgs :: AngleBracketed ( r) ) => {
105
- over ( & l. args , & r. args , |l, r| eq_angle_arg ( l, r) )
106
- } ,
101
+ ( GenericArgs :: AngleBracketed ( l) , GenericArgs :: AngleBracketed ( r) ) => over ( & l. args , & r. args , eq_angle_arg) ,
107
102
( GenericArgs :: Parenthesized ( l) , GenericArgs :: Parenthesized ( r) ) => {
108
103
over ( & l. inputs , & r. inputs , |l, r| eq_ty ( l, r) ) && eq_fn_ret_ty ( & l. output , & r. output )
109
104
} ,
@@ -142,7 +137,7 @@ pub fn eq_struct_rest(l: &StructRest, r: &StructRest) -> bool {
142
137
143
138
pub fn eq_expr ( l : & Expr , r : & Expr ) -> bool {
144
139
use ExprKind :: * ;
145
- if !over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) ) {
140
+ if !over ( & l. attrs , & r. attrs , eq_attr) {
146
141
return false ;
147
142
}
148
143
match ( & l. kind , & r. kind ) {
@@ -173,20 +168,20 @@ pub fn eq_expr(l: &Expr, r: &Expr) -> bool {
173
168
( Assign ( l1, l2, _) , Assign ( r1, r2, _) ) | ( Index ( l1, l2) , Index ( r1, r2) ) => eq_expr ( l1, r1) && eq_expr ( l2, r2) ,
174
169
( AssignOp ( lo, lp, lv) , AssignOp ( ro, rp, rv) ) => lo. node == ro. node && eq_expr ( lp, rp) && eq_expr ( lv, rv) ,
175
170
( Field ( lp, lf) , Field ( rp, rf) ) => eq_id ( * lf, * rf) && eq_expr ( lp, rp) ,
176
- ( Match ( ls, la) , Match ( rs, ra) ) => eq_expr ( ls, rs) && over ( la, ra, |l , r| eq_arm ( l , r ) ) ,
171
+ ( Match ( ls, la) , Match ( rs, ra) ) => eq_expr ( ls, rs) && over ( la, ra, eq_arm) ,
177
172
( Closure ( lc, la, lm, lf, lb, _) , Closure ( rc, ra, rm, rf, rb, _) ) => {
178
173
lc == rc && la. is_async ( ) == ra. is_async ( ) && lm == rm && eq_fn_decl ( lf, rf) && eq_expr ( lb, rb)
179
174
} ,
180
175
( Async ( lc, _, lb) , Async ( rc, _, rb) ) => lc == rc && eq_block ( lb, rb) ,
181
176
( Range ( lf, lt, ll) , Range ( rf, rt, rl) ) => ll == rl && eq_expr_opt ( lf, rf) && eq_expr_opt ( lt, rt) ,
182
177
( AddrOf ( lbk, lm, le) , AddrOf ( rbk, rm, re) ) => lbk == rbk && lm == rm && eq_expr ( le, re) ,
183
- ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, |l , r| eq_qself ( l , r ) ) && eq_path ( lp, rp) ,
178
+ ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, eq_qself) && eq_path ( lp, rp) ,
184
179
( MacCall ( l) , MacCall ( r) ) => eq_mac_call ( l, r) ,
185
180
( Struct ( lse) , Struct ( rse) ) => {
186
181
eq_maybe_qself ( & lse. qself , & rse. qself )
187
182
&& eq_path ( & lse. path , & rse. path )
188
183
&& eq_struct_rest ( & lse. rest , & rse. rest )
189
- && unordered_over ( & lse. fields , & rse. fields , |l , r| eq_field ( l , r ) )
184
+ && unordered_over ( & lse. fields , & rse. fields , eq_field)
190
185
} ,
191
186
_ => false ,
192
187
}
@@ -196,23 +191,23 @@ pub fn eq_field(l: &ExprField, r: &ExprField) -> bool {
196
191
l. is_placeholder == r. is_placeholder
197
192
&& eq_id ( l. ident , r. ident )
198
193
&& eq_expr ( & l. expr , & r. expr )
199
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
194
+ && over ( & l. attrs , & r. attrs , eq_attr)
200
195
}
201
196
202
197
pub fn eq_arm ( l : & Arm , r : & Arm ) -> bool {
203
198
l. is_placeholder == r. is_placeholder
204
199
&& eq_pat ( & l. pat , & r. pat )
205
200
&& eq_expr ( & l. body , & r. body )
206
201
&& eq_expr_opt ( & l. guard , & r. guard )
207
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
202
+ && over ( & l. attrs , & r. attrs , eq_attr)
208
203
}
209
204
210
205
pub fn eq_label ( l : & Option < Label > , r : & Option < Label > ) -> bool {
211
206
both ( l, r, |l, r| eq_id ( l. ident , r. ident ) )
212
207
}
213
208
214
209
pub fn eq_block ( l : & Block , r : & Block ) -> bool {
215
- l. rules == r. rules && over ( & l. stmts , & r. stmts , |l , r| eq_stmt ( l , r ) )
210
+ l. rules == r. rules && over ( & l. stmts , & r. stmts , eq_stmt)
216
211
}
217
212
218
213
pub fn eq_stmt ( l : & Stmt , r : & Stmt ) -> bool {
@@ -222,13 +217,13 @@ pub fn eq_stmt(l: &Stmt, r: &Stmt) -> bool {
222
217
eq_pat ( & l. pat , & r. pat )
223
218
&& both ( & l. ty , & r. ty , |l, r| eq_ty ( l, r) )
224
219
&& eq_local_kind ( & l. kind , & r. kind )
225
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
220
+ && over ( & l. attrs , & r. attrs , eq_attr)
226
221
} ,
227
222
( Item ( l) , Item ( r) ) => eq_item ( l, r, eq_item_kind) ,
228
223
( Expr ( l) , Expr ( r) ) | ( Semi ( l) , Semi ( r) ) => eq_expr ( l, r) ,
229
224
( Empty , Empty ) => true ,
230
225
( MacCall ( l) , MacCall ( r) ) => {
231
- l. style == r. style && eq_mac_call ( & l. mac , & r. mac ) && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
226
+ l. style == r. style && eq_mac_call ( & l. mac , & r. mac ) && over ( & l. attrs , & r. attrs , eq_attr)
232
227
} ,
233
228
_ => false ,
234
229
}
@@ -245,10 +240,7 @@ pub fn eq_local_kind(l: &LocalKind, r: &LocalKind) -> bool {
245
240
}
246
241
247
242
pub fn eq_item < K > ( l : & Item < K > , r : & Item < K > , mut eq_kind : impl FnMut ( & K , & K ) -> bool ) -> bool {
248
- eq_id ( l. ident , r. ident )
249
- && over ( & l. attrs , & r. attrs , |l, r| eq_attr ( l, r) )
250
- && eq_vis ( & l. vis , & r. vis )
251
- && eq_kind ( & l. kind , & r. kind )
243
+ eq_id ( l. ident , r. ident ) && over ( & l. attrs , & r. attrs , eq_attr) && eq_vis ( & l. vis , & r. vis ) && eq_kind ( & l. kind , & r. kind )
252
244
}
253
245
254
246
pub fn eq_item_kind ( l : & ItemKind , r : & ItemKind ) -> bool {
@@ -272,29 +264,26 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
272
264
}
273
265
} ,
274
266
( ForeignMod ( l) , ForeignMod ( r) ) => {
275
- both ( & l. abi , & r. abi , |l, r| eq_str_lit ( l, r) )
276
- && over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_foreign_item_kind) )
267
+ both ( & l. abi , & r. abi , eq_str_lit) && over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_foreign_item_kind) )
277
268
} ,
278
269
( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
279
270
eq_defaultness ( * ld, * rd)
280
271
&& eq_generics ( lg, rg)
281
- && over ( lb, rb, |l , r| eq_generic_bound ( l , r ) )
272
+ && over ( lb, rb, eq_generic_bound)
282
273
&& both ( lt, rt, |l, r| eq_ty ( l, r) )
283
274
} ,
284
- ( Enum ( le, lg) , Enum ( re, rg) ) => {
285
- over ( & le. variants , & re. variants , |l, r| eq_variant ( l, r) ) && eq_generics ( lg, rg)
286
- } ,
275
+ ( Enum ( le, lg) , Enum ( re, rg) ) => over ( & le. variants , & re. variants , eq_variant) && eq_generics ( lg, rg) ,
287
276
( Struct ( lv, lg) , Struct ( rv, rg) ) | ( Union ( lv, lg) , Union ( rv, rg) ) => {
288
277
eq_variant_data ( lv, rv) && eq_generics ( lg, rg)
289
278
} ,
290
279
( Trait ( box TraitKind ( la, lu, lg, lb, li) ) , Trait ( box TraitKind ( ra, ru, rg, rb, ri) ) ) => {
291
280
la == ra
292
281
&& matches ! ( lu, Unsafe :: No ) == matches ! ( ru, Unsafe :: No )
293
282
&& eq_generics ( lg, rg)
294
- && over ( lb, rb, |l , r| eq_generic_bound ( l , r ) )
283
+ && over ( lb, rb, eq_generic_bound)
295
284
&& over ( li, ri, |l, r| eq_item ( l, r, eq_assoc_item_kind) )
296
285
} ,
297
- ( TraitAlias ( lg, lb) , TraitAlias ( rg, rb) ) => eq_generics ( lg, rg) && over ( lb, rb, |l , r| eq_generic_bound ( l , r ) ) ,
286
+ ( TraitAlias ( lg, lb) , TraitAlias ( rg, rb) ) => eq_generics ( lg, rg) && over ( lb, rb, eq_generic_bound) ,
298
287
(
299
288
Impl ( box ImplKind {
300
289
unsafety : lu,
@@ -342,7 +331,7 @@ pub fn eq_foreign_item_kind(l: &ForeignItemKind, r: &ForeignItemKind) -> bool {
342
331
( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
343
332
eq_defaultness ( * ld, * rd)
344
333
&& eq_generics ( lg, rg)
345
- && over ( lb, rb, |l , r| eq_generic_bound ( l , r ) )
334
+ && over ( lb, rb, eq_generic_bound)
346
335
&& both ( lt, rt, |l, r| eq_ty ( l, r) )
347
336
} ,
348
337
( MacCall ( l) , MacCall ( r) ) => eq_mac_call ( l, r) ,
@@ -360,7 +349,7 @@ pub fn eq_assoc_item_kind(l: &AssocItemKind, r: &AssocItemKind) -> bool {
360
349
( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
361
350
eq_defaultness ( * ld, * rd)
362
351
&& eq_generics ( lg, rg)
363
- && over ( lb, rb, |l , r| eq_generic_bound ( l , r ) )
352
+ && over ( lb, rb, eq_generic_bound)
364
353
&& both ( lt, rt, |l, r| eq_ty ( l, r) )
365
354
} ,
366
355
( MacCall ( l) , MacCall ( r) ) => eq_mac_call ( l, r) ,
@@ -370,7 +359,7 @@ pub fn eq_assoc_item_kind(l: &AssocItemKind, r: &AssocItemKind) -> bool {
370
359
371
360
pub fn eq_variant ( l : & Variant , r : & Variant ) -> bool {
372
361
l. is_placeholder == r. is_placeholder
373
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
362
+ && over ( & l. attrs , & r. attrs , eq_attr)
374
363
&& eq_vis ( & l. vis , & r. vis )
375
364
&& eq_id ( l. ident , r. ident )
376
365
&& eq_variant_data ( & l. data , & r. data )
@@ -381,14 +370,14 @@ pub fn eq_variant_data(l: &VariantData, r: &VariantData) -> bool {
381
370
use VariantData :: * ;
382
371
match ( l, r) {
383
372
( Unit ( _) , Unit ( _) ) => true ,
384
- ( Struct ( l, _) , Struct ( r, _) ) | ( Tuple ( l, _) , Tuple ( r, _) ) => over ( l, r, |l , r| eq_struct_field ( l , r ) ) ,
373
+ ( Struct ( l, _) , Struct ( r, _) ) | ( Tuple ( l, _) , Tuple ( r, _) ) => over ( l, r, eq_struct_field) ,
385
374
_ => false ,
386
375
}
387
376
}
388
377
389
378
pub fn eq_struct_field ( l : & FieldDef , r : & FieldDef ) -> bool {
390
379
l. is_placeholder == r. is_placeholder
391
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
380
+ && over ( & l. attrs , & r. attrs , eq_attr)
392
381
&& eq_vis ( & l. vis , & r. vis )
393
382
&& both ( & l. ident , & r. ident , |l, r| eq_id ( * l, * r) )
394
383
&& eq_ty ( & l. ty , & r. ty )
@@ -406,7 +395,7 @@ pub fn eq_fn_header(l: &FnHeader, r: &FnHeader) -> bool {
406
395
}
407
396
408
397
pub fn eq_generics ( l : & Generics , r : & Generics ) -> bool {
409
- over ( & l. params , & r. params , |l , r| eq_generic_param ( l , r ) )
398
+ over ( & l. params , & r. params , eq_generic_param)
410
399
&& over ( & l. where_clause . predicates , & r. where_clause . predicates , |l, r| {
411
400
eq_where_predicate ( l, r)
412
401
} )
@@ -419,10 +408,10 @@ pub fn eq_where_predicate(l: &WherePredicate, r: &WherePredicate) -> bool {
419
408
over ( & l. bound_generic_params , & r. bound_generic_params , |l, r| {
420
409
eq_generic_param ( l, r)
421
410
} ) && eq_ty ( & l. bounded_ty , & r. bounded_ty )
422
- && over ( & l. bounds , & r. bounds , |l , r| eq_generic_bound ( l , r ) )
411
+ && over ( & l. bounds , & r. bounds , eq_generic_bound)
423
412
} ,
424
413
( RegionPredicate ( l) , RegionPredicate ( r) ) => {
425
- eq_id ( l. lifetime . ident , r. lifetime . ident ) && over ( & l. bounds , & r. bounds , |l , r| eq_generic_bound ( l , r ) )
414
+ eq_id ( l. lifetime . ident , r. lifetime . ident ) && over ( & l. bounds , & r. bounds , eq_generic_bound)
426
415
} ,
427
416
( EqPredicate ( l) , EqPredicate ( r) ) => eq_ty ( & l. lhs_ty , & r. lhs_ty ) && eq_ty ( & l. rhs_ty , & r. rhs_ty ) ,
428
417
_ => false ,
@@ -469,7 +458,7 @@ pub fn eq_fn_decl(l: &FnDecl, r: &FnDecl) -> bool {
469
458
l. is_placeholder == r. is_placeholder
470
459
&& eq_pat ( & l. pat , & r. pat )
471
460
&& eq_ty ( & l. ty , & r. ty )
472
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
461
+ && over ( & l. attrs , & r. attrs , eq_attr)
473
462
} )
474
463
}
475
464
@@ -496,13 +485,13 @@ pub fn eq_ty(l: &Ty, r: &Ty) -> bool {
496
485
( BareFn ( l) , BareFn ( r) ) => {
497
486
l. unsafety == r. unsafety
498
487
&& eq_ext ( & l. ext , & r. ext )
499
- && over ( & l. generic_params , & r. generic_params , |l , r| eq_generic_param ( l , r ) )
488
+ && over ( & l. generic_params , & r. generic_params , eq_generic_param)
500
489
&& eq_fn_decl ( & l. decl , & r. decl )
501
490
} ,
502
491
( Tup ( l) , Tup ( r) ) => over ( l, r, |l, r| eq_ty ( l, r) ) ,
503
- ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, |l , r| eq_qself ( l , r ) ) && eq_path ( lp, rp) ,
504
- ( TraitObject ( lg, ls) , TraitObject ( rg, rs) ) => ls == rs && over ( lg, rg, |l , r| eq_generic_bound ( l , r ) ) ,
505
- ( ImplTrait ( _, lg) , ImplTrait ( _, rg) ) => over ( lg, rg, |l , r| eq_generic_bound ( l , r ) ) ,
492
+ ( Path ( lq, lp) , Path ( rq, rp) ) => both ( lq, rq, eq_qself) && eq_path ( lp, rp) ,
493
+ ( TraitObject ( lg, ls) , TraitObject ( rg, rs) ) => ls == rs && over ( lg, rg, eq_generic_bound) ,
494
+ ( ImplTrait ( _, lg) , ImplTrait ( _, rg) ) => over ( lg, rg, eq_generic_bound) ,
506
495
( Typeof ( l) , Typeof ( r) ) => eq_expr ( & l. value , & r. value ) ,
507
496
( MacCall ( l) , MacCall ( r) ) => eq_mac_call ( l, r) ,
508
497
_ => false ,
@@ -533,7 +522,7 @@ pub fn eq_generic_param(l: &GenericParam, r: &GenericParam) -> bool {
533
522
use GenericParamKind :: * ;
534
523
l. is_placeholder == r. is_placeholder
535
524
&& eq_id ( l. ident , r. ident )
536
- && over ( & l. bounds , & r. bounds , |l , r| eq_generic_bound ( l , r ) )
525
+ && over ( & l. bounds , & r. bounds , eq_generic_bound)
537
526
&& match ( & l. kind , & r. kind ) {
538
527
( Lifetime , Lifetime ) => true ,
539
528
( Type { default : l } , Type { default : r } ) => both ( l, r, |l, r| eq_ty ( l, r) ) ,
@@ -548,10 +537,10 @@ pub fn eq_generic_param(l: &GenericParam, r: &GenericParam) -> bool {
548
537
kw_span : _,
549
538
default : rd,
550
539
} ,
551
- ) => eq_ty ( lt, rt) && both ( ld, rd, |ld , rd| eq_anon_const ( ld , rd ) ) ,
540
+ ) => eq_ty ( lt, rt) && both ( ld, rd, eq_anon_const) ,
552
541
_ => false ,
553
542
}
554
- && over ( & l. attrs , & r. attrs , |l , r| eq_attr ( l , r ) )
543
+ && over ( & l. attrs , & r. attrs , eq_attr)
555
544
}
556
545
557
546
pub fn eq_generic_bound ( l : & GenericBound , r : & GenericBound ) -> bool {
@@ -568,7 +557,7 @@ pub fn eq_assoc_constraint(l: &AssocTyConstraint, r: &AssocTyConstraint) -> bool
568
557
eq_id ( l. ident , r. ident )
569
558
&& match ( & l. kind , & r. kind ) {
570
559
( Equality { ty : l } , Equality { ty : r } ) => eq_ty ( l, r) ,
571
- ( Bound { bounds : l } , Bound { bounds : r } ) => over ( l, r, |l , r| eq_generic_bound ( l , r ) ) ,
560
+ ( Bound { bounds : l } , Bound { bounds : r } ) => over ( l, r, eq_generic_bound) ,
572
561
_ => false ,
573
562
}
574
563
}
0 commit comments