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
…

Reply via email to