]> git.lizzy.rs Git - rust.git/blobdiff - compiler/rustc_data_structures/src/fingerprint.rs
Rollup merge of #93580 - m-ou-se:stabilize-pin-static-ref, r=scottmcm
[rust.git] / compiler / rustc_data_structures / src / fingerprint.rs
index c9af35da4bcef52309b80b5684f21a09a463ab57..e931379dd3a70d5d7416e034d1877d01f0605dd8 100644 (file)
@@ -3,6 +3,9 @@
 use std::convert::TryInto;
 use std::hash::{Hash, Hasher};
 
+#[cfg(test)]
+mod tests;
+
 #[derive(Eq, PartialEq, Ord, PartialOrd, Debug, Clone, Copy)]
 #[repr(C)]
 pub struct Fingerprint(u64, u64);
@@ -54,7 +57,7 @@ pub fn combine_commutative(self, other: Fingerprint) -> Fingerprint {
 
         let c = a.wrapping_add(b);
 
-        Fingerprint((c >> 64) as u64, c as u64)
+        Fingerprint(c as u64, (c >> 64) as u64)
     }
 
     pub fn to_hex(&self) -> String {
@@ -149,10 +152,10 @@ fn encode(&self, s: &mut E) -> Result<(), E::Error> {
 
 impl<D: rustc_serialize::Decoder> Decodable<D> for Fingerprint {
     #[inline]
-    fn decode(d: &mut D) -> Result<Self, D::Error> {
+    fn decode(d: &mut D) -> Self {
         let mut bytes = [0u8; 16];
-        d.read_raw_bytes_into(&mut bytes)?;
-        Ok(Fingerprint::from_le_bytes(bytes))
+        d.read_raw_bytes_into(&mut bytes);
+        Fingerprint::from_le_bytes(bytes)
     }
 }
 
@@ -195,8 +198,8 @@ fn encode(&self, s: &mut E) -> Result<(), E::Error> {
 
 impl<D: rustc_serialize::Decoder> Decodable<D> for PackedFingerprint {
     #[inline]
-    fn decode(d: &mut D) -> Result<Self, D::Error> {
-        Fingerprint::decode(d).map(PackedFingerprint)
+    fn decode(d: &mut D) -> Self {
+        Self(Fingerprint::decode(d))
     }
 }