>> "identityless objects and the type hierarchy": discussed how the >> IdentityObject/PrimitiveObject interfaces are used in the "Consolidating the >> user model" world > > > For the moment I think this does probably carry over to > WithIdentity/WithoutIdentity or whatever they are called. The question I > think is still open (to me) is whether there really are active contractual > implications of being identityless or if it's equivalent to being > uncommitted; i.e. should a clear-cut identityless class still be able to have > an identityful subclass, or does that clearly break something.
It breaks flattening. If an identityless class is flattened - and we want to preserve the option to do this for bucket 2 values that are <= 64 bits - then we can't assign a subclass instance to a slot (field / array element) declared to be the superclass's type as we may have to truncate the subclass to have it fit. --Dan