@@ -81,7 +81,9 @@ impl<'a, 'tcx: 'a> SpanlessEq<'a, 'tcx> {
81
81
l_op == r_op. node && self . eq_expr ( ll, rl) && self . eq_expr ( lr, rr)
82
82
} )
83
83
}
84
- ( & ExprBreak ( li) , & ExprBreak ( ri) ) => both ( & li, & ri, |l, r| l. node . as_str ( ) == r. node . as_str ( ) ) ,
84
+ ( & ExprBreak ( li, ref le) , & ExprBreak ( ri, ref re) ) =>
85
+ both ( & li, & ri, |l, r| l. node . as_str ( ) == r. node . as_str ( ) )
86
+ && both ( le, re, |l, r| self . eq_expr ( l, r) ) ,
85
87
( & ExprBox ( ref l) , & ExprBox ( ref r) ) => self . eq_expr ( l, r) ,
86
88
( & ExprCall ( ref l_fun, ref l_args) , & ExprCall ( ref r_fun, ref r_args) ) => {
87
89
!self . ignore_fn && self . eq_expr ( l_fun, r_fun) && self . eq_exprs ( l_args, r_args)
@@ -98,8 +100,8 @@ impl<'a, 'tcx: 'a> SpanlessEq<'a, 'tcx> {
98
100
self . eq_expr ( lc, rc) && self . eq_block ( lt, rt) && both ( le, re, |l, r| self . eq_expr ( l, r) )
99
101
}
100
102
( & ExprLit ( ref l) , & ExprLit ( ref r) ) => l. node == r. node ,
101
- ( & ExprLoop ( ref lb, ref ll) , & ExprLoop ( ref rb, ref rl) ) => {
102
- self . eq_block ( lb, rb) && both ( ll, rl, |l, r| l. node . as_str ( ) == r. node . as_str ( ) )
103
+ ( & ExprLoop ( ref lb, ref ll, ref lls ) , & ExprLoop ( ref rb, ref rl, ref rls ) ) => {
104
+ self . eq_block ( lb, rb) && both ( ll, rl, |l, r| l. node . as_str ( ) == r. node . as_str ( ) ) && lls == rls
103
105
}
104
106
( & ExprMatch ( ref le, ref la, ref ls) , & ExprMatch ( ref re, ref ra, ref rs) ) => {
105
107
ls == rs && self . eq_expr ( le, re) &&
@@ -344,12 +346,15 @@ impl<'a, 'tcx: 'a> SpanlessHash<'a, 'tcx> {
344
346
self . hash_expr ( l) ;
345
347
self . hash_expr ( r) ;
346
348
}
347
- ExprBreak ( i) => {
348
- let c: fn ( _) -> _ = ExprBreak ;
349
+ ExprBreak ( i, ref j ) => {
350
+ let c: fn ( _, _ ) -> _ = ExprBreak ;
349
351
c. hash ( & mut self . s ) ;
350
352
if let Some ( i) = i {
351
353
self . hash_name ( & i. node ) ;
352
354
}
355
+ if let Some ( ref j) = * j {
356
+ self . hash_expr ( & * j) ;
357
+ }
353
358
}
354
359
ExprBox ( ref e) => {
355
360
let c: fn ( _) -> _ = ExprBox ;
@@ -404,13 +409,14 @@ impl<'a, 'tcx: 'a> SpanlessHash<'a, 'tcx> {
404
409
c. hash ( & mut self . s ) ;
405
410
l. hash ( & mut self . s ) ;
406
411
}
407
- ExprLoop ( ref b, ref i) => {
408
- let c: fn ( _, _) -> _ = ExprLoop ;
412
+ ExprLoop ( ref b, ref i, ref j ) => {
413
+ let c: fn ( _, _, _ ) -> _ = ExprLoop ;
409
414
c. hash ( & mut self . s ) ;
410
415
self . hash_block ( b) ;
411
416
if let Some ( i) = * i {
412
417
self . hash_name ( & i. node ) ;
413
418
}
419
+ j. hash ( & mut self . s ) ;
414
420
}
415
421
ExprMatch ( ref e, ref arms, ref s) => {
416
422
let c: fn ( _, _, _) -> _ = ExprMatch ;
0 commit comments