@@ -374,12 +374,15 @@ impl Execs {
374374
375375 let mut matches = 0 ;
376376
377- while let Some ( .. ) = {
377+ loop {
378378 if self . diff_lines ( a. clone ( ) , e. clone ( ) , true ) . is_empty ( ) {
379379 matches += 1 ;
380380 }
381- a. next ( )
382- } { }
381+
382+ if a. next ( ) . is_none ( ) {
383+ break ;
384+ }
385+ }
383386
384387 if matches == number {
385388 Ok ( ( ) )
@@ -553,10 +556,10 @@ fn lines_match_works() {
553556fn find_mismatch < ' a > ( expected : & ' a Value , actual : & ' a Value ) -> Option < ( & ' a Value , & ' a Value ) > {
554557 use serde_json:: Value :: * ;
555558 match ( expected, actual) {
556- ( & Number ( ref l) , & Number ( ref r) ) if l == r => None ,
557- ( & Bool ( l) , & Bool ( r) ) if l == r => None ,
558- ( & String ( ref l) , & String ( ref r) ) if lines_match ( l, r) => None ,
559- ( & Array ( ref l) , & Array ( ref r) ) => {
559+ ( Number ( l) , Number ( r) ) if l == r => None ,
560+ ( Bool ( l) , Bool ( r) ) if l == r => None ,
561+ ( String ( l) , String ( r) ) if lines_match ( l, r) => None ,
562+ ( Array ( l) , Array ( r) ) => {
560563 if l. len ( ) != r. len ( ) {
561564 return Some ( ( expected, actual) ) ;
562565 }
@@ -582,20 +585,19 @@ fn find_mismatch<'a>(expected: &'a Value, actual: &'a Value) -> Option<(&'a Valu
582585 None
583586 }
584587 }
585- ( & Object ( ref l) , & Object ( ref r) ) => {
588+ ( Object ( l) , Object ( r) ) => {
586589 let same_keys = l. len ( ) == r. len ( ) && l. keys ( ) . all ( |k| r. contains_key ( k) ) ;
587590 if !same_keys {
588591 return Some ( ( expected, actual) ) ;
589592 }
590593
591594 l. values ( )
592595 . zip ( r. values ( ) )
593- . filter_map ( |( l, r) | find_mismatch ( l, r) )
594- . next ( )
596+ . find_map ( |( l, r) | find_mismatch ( l, r) )
595597 }
596- ( & Null , & Null ) => None ,
598+ ( Null , Null ) => None ,
597599 // magic string literal "{...}" acts as wildcard for any sub-JSON
598- ( & String ( ref l) , _) if l == "{...}" => None ,
600+ ( String ( l) , _) if l == "{...}" => None ,
599601 _ => Some ( ( expected, actual) ) ,
600602 }
601603}
0 commit comments