about summary refs log tree commit diff
path: root/src/libcore/hash
diff options
context:
space:
mode:
authorAlex Crichton <alex@alexcrichton.com>2015-01-14 16:08:07 -0800
committerAlex Crichton <alex@alexcrichton.com>2015-01-18 18:29:22 -0800
commit70f7165cc8975337964118af4d30f40b98f5edeb (patch)
treeeab03b16f4cdbf1652bb99c829469613319ee19e /src/libcore/hash
parentdcaeb6aa23ecba2dc2af870668a9239136d20fa3 (diff)
downloadrust-70f7165cc8975337964118af4d30f40b98f5edeb.tar.gz
rust-70f7165cc8975337964118af4d30f40b98f5edeb.zip
std: Stabilize TypeId and tweak BoxAny
This commit aims to stabilize the `TypeId` abstraction by moving it out of the
`intrinsics` module into the `any` module of the standard library. Specifically,

* `TypeId` is now defined at `std::any::TypeId`
* `TypeId::hash` has been removed in favor of an implementation of `Hash`.

This commit also performs a final pass over the `any` module, confirming the
following:

* `Any::get_type_id` remains unstable as *usage* of the `Any` trait will likely
  never require this, and the `Any` trait does not need to be implemented for
  any other types. As a result, this implementation detail can remain unstable
  until associated statics are implemented.
* `Any::downcast_ref` is now stable
* `Any::downcast_mut` is now stable
* `BoxAny` remains unstable. While a direct impl on `Box<Any>` is allowed today
  it does not allow downcasting of trait objects like `Box<Any + Send>` (those
  returned from `Thread::join`). This is covered by #18737.
* `BoxAny::downcast` is now stable.
Diffstat (limited to 'src/libcore/hash')
-rw-r--r--src/libcore/hash/mod.rs8
1 files changed, 0 insertions, 8 deletions
diff --git a/src/libcore/hash/mod.rs b/src/libcore/hash/mod.rs
index 37e4a105a30..742e6239017 100644
--- a/src/libcore/hash/mod.rs
+++ b/src/libcore/hash/mod.rs
@@ -62,7 +62,6 @@ use prelude::*;
 
 use borrow::{Cow, ToOwned};
 use default::Default;
-use intrinsics::TypeId;
 use mem;
 use num::Int;
 
@@ -243,13 +242,6 @@ impl<S: Writer + Hasher, T> Hash<S> for *mut T {
     }
 }
 
-impl<S: Writer + Hasher> Hash<S> for TypeId {
-    #[inline]
-    fn hash(&self, state: &mut S) {
-        self.hash().hash(state)
-    }
-}
-
 impl<'a, T, B: ?Sized, S: Hasher> Hash<S> for Cow<'a, T, B>
     where B: Hash<S> + ToOwned<T>
 {