about summary refs log tree commit diff
diff options
context:
space:
mode:
-rw-r--r--src/libstd/any.rs15
1 files changed, 15 insertions, 0 deletions
diff --git a/src/libstd/any.rs b/src/libstd/any.rs
index 06f66a014dd..76996c0dede 100644
--- a/src/libstd/any.rs
+++ b/src/libstd/any.rs
@@ -14,6 +14,7 @@
 use cast::transmute;
 use cmp::Eq;
 use option::{Option, Some, None};
+use to_bytes::{IterBytes, Cb};
 use to_str::ToStr;
 use unstable::intrinsics;
 use util::Void;
@@ -42,6 +43,12 @@ impl Eq for TypeId {
     }
 }
 
+impl IterBytes for TypeId {
+    fn iter_bytes(&self, lsb0: bool, f: Cb) -> bool {
+        self.t.iter_bytes(lsb0, f)
+    }
+}
+
 ///////////////////////////////////////////////////////////////////////////////
 // Any trait
 ///////////////////////////////////////////////////////////////////////////////
@@ -175,6 +182,7 @@ mod tests {
     use super::*;
     use super::AnyRefExt;
     use option::{Some, None};
+    use hash::Hash;
 
     #[deriving(Eq)]
     struct Test;
@@ -198,6 +206,13 @@ mod tests {
     }
 
     #[test]
+    fn type_id_hash() {
+        let (a, b) = (TypeId::of::<uint>(), TypeId::of::<uint>::());
+
+        assert_eq!(a.hash(), b.hash());
+    }
+
+    #[test]
     fn any_as_void_ptr() {
         let (a, b, c) = (~5u as ~Any, ~TEST as ~Any, ~Test as ~Any);
         let a_r: &Any = a;