@@ -30,11 +30,12 @@ use serde_json::{
30
30
from_reader, from_slice, from_str, from_value, json, to_string, to_string_pretty, to_value,
31
31
to_vec, Deserializer , Number , Value ,
32
32
} ;
33
- use std:: collections:: hash_map:: DefaultHasher ;
34
33
use std:: collections:: BTreeMap ;
35
34
#[ cfg( feature = "raw_value" ) ]
36
35
use std:: collections:: HashMap ;
37
36
use std:: fmt:: { self , Debug } ;
37
+ use std:: hash:: BuildHasher ;
38
+ #[ cfg( feature = "raw_value" ) ]
38
39
use std:: hash:: { Hash , Hasher } ;
39
40
use std:: io;
40
41
use std:: iter;
@@ -2490,19 +2491,15 @@ fn test_value_into_deserializer() {
2490
2491
2491
2492
#[ test]
2492
2493
fn hash_positive_and_negative_zero ( ) {
2493
- fn hash ( obj : impl Hash ) -> u64 {
2494
- let mut hasher = DefaultHasher :: new ( ) ;
2495
- obj. hash ( & mut hasher) ;
2496
- hasher. finish ( )
2497
- }
2494
+ let rand = std:: hash:: RandomState :: new ( ) ;
2498
2495
2499
2496
let k1 = serde_json:: from_str :: < Number > ( "0.0" ) . unwrap ( ) ;
2500
2497
let k2 = serde_json:: from_str :: < Number > ( "-0.0" ) . unwrap ( ) ;
2501
2498
if cfg ! ( feature = "arbitrary_precision" ) {
2502
2499
assert_ne ! ( k1, k2) ;
2503
- assert_ne ! ( hash ( k1) , hash ( k2) ) ;
2500
+ assert_ne ! ( rand . hash_one ( k1) , rand . hash_one ( k2) ) ;
2504
2501
} else {
2505
2502
assert_eq ! ( k1, k2) ;
2506
- assert_eq ! ( hash ( k1) , hash ( k2) ) ;
2503
+ assert_eq ! ( rand . hash_one ( k1) , rand . hash_one ( k2) ) ;
2507
2504
}
2508
2505
}
0 commit comments