@@ -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