@@ -75,11 +75,11 @@ pub fn eq_field_pat(l: &PatField, r: &PatField) -> bool {
7575        && over ( & l. attrs ,  & r. attrs ,  eq_attr) 
7676} 
7777
78- pub  fn  eq_qself ( l :  & QSelf ,  r :  & QSelf )  -> bool  { 
78+ pub  fn  eq_qself ( l :  & P < QSelf > ,  r :  & P < QSelf > )  -> bool  { 
7979    l. position  == r. position  && eq_ty ( & l. ty ,  & r. ty ) 
8080} 
8181
82- pub  fn  eq_maybe_qself ( l :  & Option < QSelf > ,  r :  & Option < QSelf > )  -> bool  { 
82+ pub  fn  eq_maybe_qself ( l :  & Option < P < QSelf > > ,  r :  & Option < P < QSelf > > )  -> bool  { 
8383    match  ( l,  r)  { 
8484        ( Some ( l) ,  Some ( r) )  => eq_qself ( l,  r) , 
8585        ( None ,  None )  => true , 
@@ -147,8 +147,11 @@ pub fn eq_expr(l: &Expr, r: &Expr) -> bool {
147147        ( Array ( l) ,  Array ( r) )  | ( Tup ( l) ,  Tup ( r) )  => over ( l,  r,  |l,  r| eq_expr ( l,  r) ) , 
148148        ( Repeat ( le,  ls) ,  Repeat ( re,  rs) )  => eq_expr ( le,  re)  && eq_expr ( & ls. value ,  & rs. value ) , 
149149        ( Call ( lc,  la) ,  Call ( rc,  ra) )  => eq_expr ( lc,  rc)  && over ( la,  ra,  |l,  r| eq_expr ( l,  r) ) , 
150-         ( MethodCall ( lc,  ls,  la,  _) ,  MethodCall ( rc,  rs,  ra,  _) )  => { 
151-             eq_path_seg ( lc,  rc)  && eq_expr ( ls,  rs)  && over ( la,  ra,  |l,  r| eq_expr ( l,  r) ) 
150+         ( 
151+             MethodCall ( box ast:: MethodCall  {  seg :  ls,  receiver :  lr,  args :  la,  .. } ) , 
152+             MethodCall ( box ast:: MethodCall  {  seg :  rs,  receiver :  rr,  args :  ra,  .. } ) 
153+         )  => { 
154+             eq_path_seg ( ls,  rs)  && eq_expr ( lr,  rr)  && over ( la,  ra,  |l,  r| eq_expr ( l,  r) ) 
152155        } , 
153156        ( Binary ( lo,  ll,  lr) ,  Binary ( ro,  rl,  rr) )  => lo. node  == ro. node  && eq_expr ( ll,  rl)  && eq_expr ( lr,  rr) , 
154157        ( Unary ( lo,  l) ,  Unary ( ro,  r) )  => mem:: discriminant ( lo)  == mem:: discriminant ( ro)  && eq_expr ( l,  r) , 
@@ -170,7 +173,26 @@ pub fn eq_expr(l: &Expr, r: &Expr) -> bool {
170173        ( AssignOp ( lo,  lp,  lv) ,  AssignOp ( ro,  rp,  rv) )  => lo. node  == ro. node  && eq_expr ( lp,  rp)  && eq_expr ( lv,  rv) , 
171174        ( Field ( lp,  lf) ,  Field ( rp,  rf) )  => eq_id ( * lf,  * rf)  && eq_expr ( lp,  rp) , 
172175        ( Match ( ls,  la) ,  Match ( rs,  ra) )  => eq_expr ( ls,  rs)  && over ( la,  ra,  eq_arm) , 
173-         ( Closure ( lb,  lc,  la,  lm,  lf,  le,  _) ,  Closure ( rb,  rc,  ra,  rm,  rf,  re,  _) )  => { 
176+         ( 
177+             Closure ( box ast:: Closure  { 
178+                 binder :  lb, 
179+                 capture_clause :  lc, 
180+                 asyncness :  la, 
181+                 movability :  lm, 
182+                 fn_decl :  lf, 
183+                 body :  le, 
184+                 ..
185+             } ) , 
186+             Closure ( box ast:: Closure  { 
187+                 binder :  rb, 
188+                 capture_clause :  rc, 
189+                 asyncness :  ra, 
190+                 movability :  rm, 
191+                 fn_decl :  rf, 
192+                 body :  re, 
193+                 ..
194+             } ) 
195+         )  => { 
174196            eq_closure_binder ( lb,  rb) 
175197                && lc == rc
176198                && la. is_async ( )  == ra. is_async ( ) 
0 commit comments