Description
Any should be marked unsafe as it currently relies on Rust not having specialization. While it is extremely unlikely Rust will ever have specialization, marking Any unsafe should be fully backwards-compatible, so there's no good reason not to do it, and there are some good reasons for doing it today rather than when we do get specialization. In particular, we feel it would serve good documentation purpose that Any makes some assumptions.
Anyway, it's mostly just a strong feeling we have about it. We were thinking about generic generics when we noticed Any isn't marked unsafe, while a hypothetical AnyA<'a>
would probably have to be marked as unsafe.
(Hey, at least marking a trait like Any as unsafe, unlike most other cases of marking things as unsafe, should be backwards-compatible, yeah?)