You’re getting ahead of the story ;) Dan has worked out much of the generics work, but we are trying to stay focused on the class and object model first. But the issues you raise are handled.
Sent from my MacBook Wheel On Jul 15, 2022, at 9:48 AM, Remi Forax <[email protected]> wrote: ________________________________ From: "John Rose" <[email protected]> To: "Brian Goetz" <[email protected]> Cc: "daniel smith" <[email protected]>, "valhalla-spec-experts" <[email protected]> Sent: Wednesday, July 13, 2022 10:23:50 PM Subject: There are five buckets now FTR, I’m really happy with the user model as of this point. The things I like best about it are: [...] * Object::getClass returns a predictable ref-mirror (I always wanted that) so we have to tweak the return type of getClass() to it returns something like Class<? extends Erasure[T.ref]> and also C.val.class has to be typed Class<C>. — John Rémi On 13 Jun 2022, at 16:04, Brian Goetz wrote: I've done a little more shaking of this tree. It involves keeping the notion that the non-identity buckets differ only in the treatment of their val projection, but makes a further normalization that enables the buckets to mostly collapse away. "value class X" means: - Instances are identity-free - There are two types, X.ref (reference, nullable) and X.val (direct, non-nullable) - Reference types are atomic, as always - X is an alias for X.ref …
