@@ -75,11 +75,11 @@ pub fn eq_field_pat(l: &PatField, r: &PatField) -> bool {
75
75
&& over ( & l. attrs , & r. attrs , eq_attr)
76
76
}
77
77
78
- pub fn eq_qself ( l : & QSelf , r : & QSelf ) -> bool {
78
+ pub fn eq_qself ( l : & P < QSelf > , r : & P < QSelf > ) -> bool {
79
79
l. position == r. position && eq_ty ( & l. ty , & r. ty )
80
80
}
81
81
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 {
83
83
match ( l, r) {
84
84
( Some ( l) , Some ( r) ) => eq_qself ( l, r) ,
85
85
( None , None ) => true ,
@@ -147,8 +147,11 @@ pub fn eq_expr(l: &Expr, r: &Expr) -> bool {
147
147
( Array ( l) , Array ( r) ) | ( Tup ( l) , Tup ( r) ) => over ( l, r, |l, r| eq_expr ( l, r) ) ,
148
148
( Repeat ( le, ls) , Repeat ( re, rs) ) => eq_expr ( le, re) && eq_expr ( & ls. value , & rs. value ) ,
149
149
( 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) )
152
155
} ,
153
156
( Binary ( lo, ll, lr) , Binary ( ro, rl, rr) ) => lo. node == ro. node && eq_expr ( ll, rl) && eq_expr ( lr, rr) ,
154
157
( 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 {
170
173
( AssignOp ( lo, lp, lv) , AssignOp ( ro, rp, rv) ) => lo. node == ro. node && eq_expr ( lp, rp) && eq_expr ( lv, rv) ,
171
174
( Field ( lp, lf) , Field ( rp, rf) ) => eq_id ( * lf, * rf) && eq_expr ( lp, rp) ,
172
175
( 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
+ ) => {
174
196
eq_closure_binder ( lb, rb)
175
197
&& lc == rc
176
198
&& la. is_async ( ) == ra. is_async ( )
0 commit comments