70f7165cc8
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. |
||
---|---|---|
.. | ||
fmt | ||
hash | ||
num | ||
any.rs | ||
atomic.rs | ||
cell.rs | ||
char.rs | ||
clone.rs | ||
cmp.rs | ||
finally.rs | ||
intrinsics.rs | ||
iter.rs | ||
lib.rs | ||
mem.rs | ||
nonzero.rs | ||
ops.rs | ||
option.rs | ||
ptr.rs | ||
result.rs | ||
slice.rs | ||
str.rs | ||
tuple.rs |