@@ -243,14 +243,28 @@ pub fn eq_item<K>(l: &Item<K>, r: &Item<K>, mut eq_kind: impl FnMut(&K, &K) -> b
243243 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 )
244244}
245245
246+ #[ allow( clippy:: too_many_lines) ] // Just a big match statement
246247pub fn eq_item_kind ( l : & ItemKind , r : & ItemKind ) -> bool {
247248 use ItemKind :: * ;
248249 match ( l, r) {
249250 ( ExternCrate ( l) , ExternCrate ( r) ) => l == r,
250251 ( Use ( l) , Use ( r) ) => eq_use_tree ( l, r) ,
251252 ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
252253 ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
253- ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
254+ (
255+ Fn ( box ast:: Fn {
256+ defaultness : ld,
257+ sig : lf,
258+ generics : lg,
259+ body : lb,
260+ } ) ,
261+ Fn ( box ast:: Fn {
262+ defaultness : rd,
263+ sig : rf,
264+ generics : rg,
265+ body : rb,
266+ } ) ,
267+ ) => {
254268 eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
255269 } ,
256270 ( Mod ( lu, lmk) , Mod ( ru, rmk) ) => {
@@ -266,7 +280,20 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
266280 ( ForeignMod ( l) , ForeignMod ( r) ) => {
267281 both ( & l. abi , & r. abi , eq_str_lit) && over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_foreign_item_kind) )
268282 } ,
269- ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
283+ (
284+ TyAlias ( box ast:: TyAlias {
285+ defaultness : ld,
286+ generics : lg,
287+ bounds : lb,
288+ ty : lt,
289+ } ) ,
290+ TyAlias ( box ast:: TyAlias {
291+ defaultness : rd,
292+ generics : rg,
293+ bounds : rb,
294+ ty : rt,
295+ } ) ,
296+ ) => {
270297 eq_defaultness ( * ld, * rd)
271298 && eq_generics ( lg, rg)
272299 && over ( lb, rb, eq_generic_bound)
@@ -276,7 +303,22 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
276303 ( Struct ( lv, lg) , Struct ( rv, rg) ) | ( Union ( lv, lg) , Union ( rv, rg) ) => {
277304 eq_variant_data ( lv, rv) && eq_generics ( lg, rg)
278305 } ,
279- ( Trait ( box TraitKind ( la, lu, lg, lb, li) ) , Trait ( box TraitKind ( ra, ru, rg, rb, ri) ) ) => {
306+ (
307+ Trait ( box ast:: Trait {
308+ is_auto : la,
309+ unsafety : lu,
310+ generics : lg,
311+ bounds : lb,
312+ items : li,
313+ } ) ,
314+ Trait ( box ast:: Trait {
315+ is_auto : ra,
316+ unsafety : ru,
317+ generics : rg,
318+ bounds : rb,
319+ items : ri,
320+ } ) ,
321+ ) => {
280322 la == ra
281323 && matches ! ( lu, Unsafe :: No ) == matches ! ( ru, Unsafe :: No )
282324 && eq_generics ( lg, rg)
@@ -285,7 +327,7 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
285327 } ,
286328 ( TraitAlias ( lg, lb) , TraitAlias ( rg, rb) ) => eq_generics ( lg, rg) && over ( lb, rb, eq_generic_bound) ,
287329 (
288- Impl ( box ImplKind {
330+ Impl ( box ast :: Impl {
289331 unsafety : lu,
290332 polarity : lp,
291333 defaultness : ld,
@@ -295,7 +337,7 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
295337 self_ty : lst,
296338 items : li,
297339 } ) ,
298- Impl ( box ImplKind {
340+ Impl ( box ast :: Impl {
299341 unsafety : ru,
300342 polarity : rp,
301343 defaultness : rd,
@@ -325,10 +367,36 @@ pub fn eq_foreign_item_kind(l: &ForeignItemKind, r: &ForeignItemKind) -> bool {
325367 use ForeignItemKind :: * ;
326368 match ( l, r) {
327369 ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
328- ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
370+ (
371+ Fn ( box ast:: Fn {
372+ defaultness : ld,
373+ sig : lf,
374+ generics : lg,
375+ body : lb,
376+ } ) ,
377+ Fn ( box ast:: Fn {
378+ defaultness : rd,
379+ sig : rf,
380+ generics : rg,
381+ body : rb,
382+ } ) ,
383+ ) => {
329384 eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
330385 } ,
331- ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
386+ (
387+ TyAlias ( box ast:: TyAlias {
388+ defaultness : ld,
389+ generics : lg,
390+ bounds : lb,
391+ ty : lt,
392+ } ) ,
393+ TyAlias ( box ast:: TyAlias {
394+ defaultness : rd,
395+ generics : rg,
396+ bounds : rb,
397+ ty : rt,
398+ } ) ,
399+ ) => {
332400 eq_defaultness ( * ld, * rd)
333401 && eq_generics ( lg, rg)
334402 && over ( lb, rb, eq_generic_bound)
@@ -343,10 +411,36 @@ pub fn eq_assoc_item_kind(l: &AssocItemKind, r: &AssocItemKind) -> bool {
343411 use AssocItemKind :: * ;
344412 match ( l, r) {
345413 ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
346- ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
414+ (
415+ Fn ( box ast:: Fn {
416+ defaultness : ld,
417+ sig : lf,
418+ generics : lg,
419+ body : lb,
420+ } ) ,
421+ Fn ( box ast:: Fn {
422+ defaultness : rd,
423+ sig : rf,
424+ generics : rg,
425+ body : rb,
426+ } ) ,
427+ ) => {
347428 eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
348429 } ,
349- ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
430+ (
431+ TyAlias ( box ast:: TyAlias {
432+ defaultness : ld,
433+ generics : lg,
434+ bounds : lb,
435+ ty : lt,
436+ } ) ,
437+ TyAlias ( box ast:: TyAlias {
438+ defaultness : rd,
439+ generics : rg,
440+ bounds : rb,
441+ ty : rt,
442+ } ) ,
443+ ) => {
350444 eq_defaultness ( * ld, * rd)
351445 && eq_generics ( lg, rg)
352446 && over ( lb, rb, eq_generic_bound)
0 commit comments