@@ -229,17 +229,26 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
229
229
match ( l, r) {
230
230
( ExternCrate ( l) , ExternCrate ( r) ) => l == r,
231
231
( Use ( l) , Use ( r) ) => eq_use_tree ( l, r) ,
232
- ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
233
- ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
234
- ( Fn ( ld, lf, lg, lb) , Fn ( rd, rf, rg, rb) ) => {
235
- eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
236
- } ,
237
- ( Mod ( l) , Mod ( r) ) => l. inline == r. inline && over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_item_kind) ) ,
232
+ ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => {
233
+ lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re)
234
+ }
235
+ ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => {
236
+ eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re)
237
+ }
238
+ ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
239
+ eq_defaultness ( * ld, * rd)
240
+ && eq_fn_sig ( lf, rf)
241
+ && eq_generics ( lg, rg)
242
+ && both ( lb, rb, |l, r| eq_block ( l, r) )
243
+ }
244
+ ( Mod ( l) , Mod ( r) ) => {
245
+ l. inline == r. inline && over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_item_kind) )
246
+ }
238
247
( ForeignMod ( l) , ForeignMod ( r) ) => {
239
248
both ( & l. abi , & r. abi , |l, r| eq_str_lit ( l, r) )
240
249
&& over ( & l. items , & r. items , |l, r| eq_item ( l, r, eq_foreign_item_kind) )
241
- } ,
242
- ( TyAlias ( ld, lg, lb, lt) , TyAlias ( rd, rg, rb, rt) ) => {
250
+ }
251
+ ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
243
252
eq_defaultness ( * ld, * rd)
244
253
&& eq_generics ( lg, rg)
245
254
&& over ( lb, rb, |l, r| eq_generic_bound ( l, r) )
@@ -250,8 +259,8 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
250
259
} ,
251
260
( Struct ( lv, lg) , Struct ( rv, rg) ) | ( Union ( lv, lg) , Union ( rv, rg) ) => {
252
261
eq_variant_data ( lv, rv) && eq_generics ( lg, rg)
253
- } ,
254
- ( Trait ( la, lu, lg, lb, li) , Trait ( ra, ru, rg, rb, ri) ) => {
262
+ }
263
+ ( Trait ( box TraitKind ( la, lu, lg, lb, li) ) , Trait ( box TraitKind ( ra, ru, rg, rb, ri) ) ) => {
255
264
la == ra
256
265
&& matches ! ( lu, Unsafe :: No ) == matches ! ( ru, Unsafe :: No )
257
266
&& eq_generics ( lg, rg)
@@ -260,7 +269,7 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
260
269
} ,
261
270
( TraitAlias ( lg, lb) , TraitAlias ( rg, rb) ) => eq_generics ( lg, rg) && over ( lb, rb, |l, r| eq_generic_bound ( l, r) ) ,
262
271
(
263
- Impl {
272
+ Impl ( box ImplKind {
264
273
unsafety : lu,
265
274
polarity : lp,
266
275
defaultness : ld,
@@ -269,8 +278,8 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
269
278
of_trait : lot,
270
279
self_ty : lst,
271
280
items : li,
272
- } ,
273
- Impl {
281
+ } ) ,
282
+ Impl ( box ImplKind {
274
283
unsafety : ru,
275
284
polarity : rp,
276
285
defaultness : rd,
@@ -279,7 +288,7 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
279
288
of_trait : rot,
280
289
self_ty : rst,
281
290
items : ri,
282
- } ,
291
+ } ) ,
283
292
) => {
284
293
matches ! ( lu, Unsafe :: No ) == matches ! ( ru, Unsafe :: No )
285
294
&& matches ! ( lp, ImplPolarity :: Positive ) == matches ! ( rp, ImplPolarity :: Positive )
@@ -299,11 +308,16 @@ pub fn eq_item_kind(l: &ItemKind, r: &ItemKind) -> bool {
299
308
pub fn eq_foreign_item_kind ( l : & ForeignItemKind , r : & ForeignItemKind ) -> bool {
300
309
use ForeignItemKind :: * ;
301
310
match ( l, r) {
302
- ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
303
- ( Fn ( ld, lf, lg, lb) , Fn ( rd, rf, rg, rb) ) => {
304
- eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
305
- } ,
306
- ( TyAlias ( ld, lg, lb, lt) , TyAlias ( rd, rg, rb, rt) ) => {
311
+ ( Static ( lt, lm, le) , Static ( rt, rm, re) ) => {
312
+ lm == rm && eq_ty ( lt, rt) && eq_expr_opt ( le, re)
313
+ }
314
+ ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
315
+ eq_defaultness ( * ld, * rd)
316
+ && eq_fn_sig ( lf, rf)
317
+ && eq_generics ( lg, rg)
318
+ && both ( lb, rb, |l, r| eq_block ( l, r) )
319
+ }
320
+ ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
307
321
eq_defaultness ( * ld, * rd)
308
322
&& eq_generics ( lg, rg)
309
323
&& over ( lb, rb, |l, r| eq_generic_bound ( l, r) )
@@ -317,11 +331,16 @@ pub fn eq_foreign_item_kind(l: &ForeignItemKind, r: &ForeignItemKind) -> bool {
317
331
pub fn eq_assoc_item_kind ( l : & AssocItemKind , r : & AssocItemKind ) -> bool {
318
332
use AssocItemKind :: * ;
319
333
match ( l, r) {
320
- ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re) ,
321
- ( Fn ( ld, lf, lg, lb) , Fn ( rd, rf, rg, rb) ) => {
322
- eq_defaultness ( * ld, * rd) && eq_fn_sig ( lf, rf) && eq_generics ( lg, rg) && both ( lb, rb, |l, r| eq_block ( l, r) )
323
- } ,
324
- ( TyAlias ( ld, lg, lb, lt) , TyAlias ( rd, rg, rb, rt) ) => {
334
+ ( Const ( ld, lt, le) , Const ( rd, rt, re) ) => {
335
+ eq_defaultness ( * ld, * rd) && eq_ty ( lt, rt) && eq_expr_opt ( le, re)
336
+ }
337
+ ( Fn ( box FnKind ( ld, lf, lg, lb) ) , Fn ( box FnKind ( rd, rf, rg, rb) ) ) => {
338
+ eq_defaultness ( * ld, * rd)
339
+ && eq_fn_sig ( lf, rf)
340
+ && eq_generics ( lg, rg)
341
+ && both ( lb, rb, |l, r| eq_block ( l, r) )
342
+ }
343
+ ( TyAlias ( box TyAliasKind ( ld, lg, lb, lt) ) , TyAlias ( box TyAliasKind ( rd, rg, rb, rt) ) ) => {
325
344
eq_defaultness ( * ld, * rd)
326
345
&& eq_generics ( lg, rg)
327
346
&& over ( lb, rb, |l, r| eq_generic_bound ( l, r) )
0 commit comments