Closed
Description
When a type is marked #[stable]
, no changes to it should break safe code. This also means that the set of kinds it fulfills, ignoring any potential type parameters, should never get smaller. For example, a type that is marked #[stable]
that is Send
should always continue to be so. If it isn't Freeze
, but becomes Freeze
, that is ok, because it's a completely transparent change to previous users.
(Note: if we extend the type system to include inverse bounds ("NonFreeze" etc), then adding kinds to the set of fulfilled kinds should also be disallowed)