Design notes for next values iteration

Dan Smith daniel.smith at
Wed Nov 22 15:32:36 UTC 2017

> On Nov 22, 2017, at 2:42 AM, Remi Forax <forax at> wrote:
> I think we do not need Q types, Q types are use site annotations, and here we want declaration site annotations (let say that this class is a value class, the ACC_VALUE).
> If we have no Q type, it means that R types and U types are the same thing, everything is a U type. In term of migration, it means that L types need to have their semantics extended to work as U types.

Yeah. We discussed this and I mentioned it in the notes, but it could use a deeper exploration at some point.

As a minimum, there probably needs to be *some* way to indicate that a field can be flattened and may not be null. If a field has a U type, the referenced class would have to be loaded before we could tell if it's referencing a value class or not, and that's costly.


More information about the valhalla-spec-observers mailing list