@@ -556,10 +556,10 @@ fn lines_match_works() {
556556fn find_mismatch < ' a > ( expected : & ' a Value , actual : & ' a Value ) -> Option < ( & ' a Value , & ' a Value ) > {
557557 use serde_json:: Value :: * ;
558558 match ( expected, actual) {
559- ( & Number ( ref l) , & Number ( ref r) ) if l == r => None ,
560- ( & Bool ( l) , & Bool ( r) ) if l == r => None ,
561- ( & String ( ref l) , & String ( ref r) ) if lines_match ( l, r) => None ,
562- ( & 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) ) => {
563563 if l. len ( ) != r. len ( ) {
564564 return Some ( ( expected, actual) ) ;
565565 }
@@ -585,20 +585,19 @@ fn find_mismatch<'a>(expected: &'a Value, actual: &'a Value) -> Option<(&'a Valu
585585 None
586586 }
587587 }
588- ( & Object ( ref l) , & Object ( ref r) ) => {
588+ ( Object ( l) , Object ( r) ) => {
589589 let same_keys = l. len ( ) == r. len ( ) && l. keys ( ) . all ( |k| r. contains_key ( k) ) ;
590590 if !same_keys {
591591 return Some ( ( expected, actual) ) ;
592592 }
593593
594594 l. values ( )
595595 . zip ( r. values ( ) )
596- . filter_map ( |( l, r) | find_mismatch ( l, r) )
597- . next ( )
596+ . find_map ( |( l, r) | find_mismatch ( l, r) )
598597 }
599- ( & Null , & Null ) => None ,
598+ ( Null , Null ) => None ,
600599 // magic string literal "{...}" acts as wildcard for any sub-JSON
601- ( & String ( ref l) , _) if l == "{...}" => None ,
600+ ( String ( l) , _) if l == "{...}" => None ,
602601 _ => Some ( ( expected, actual) ) ,
603602 }
604603}
0 commit comments