generic specialization design discussion

Brian Goetz brian.goetz at
Tue Apr 9 17:04:36 UTC 2019

OK, let’s make this problem a little simpler.  The question of terminology in the JVMS is harder, but we have a syntax decision to make at the source code level.  So far its been proposed we replace “value class” with 

    inline class Foo { }

In addition to liking the sound of it, I like that it is more “modifer-y” than “value”, meaning that it could conceivably be applied to other entities:

    inline record R(int a);

    inline enum Foo { A, B };

> On Apr 8, 2019, at 7:50 PM, Doug Lea <dl at> wrote:
> On 4/8/19 6:44 PM, John Rose wrote:
>> If we move terms around so "value" gets replaced by "inline",
>> and "reference" by "indirect", only the first two lines are
>> affected:
>> “inline object”, “indirect object” (also inline or indirect instance)
>> “inline class”, “indirect class” (also inline or indirect type)
> It would be nice not to use new terms for old concepts (even if new to
> Java). For alternative terminology originally stemming from similar
> struggles to make such distinctions, see UML "Composition" vs
> "aggregation" (also vs "association"). Wikipedia has some definitions:
> The UML specs say more but behind wall at
> -Doug

More information about the valhalla-spec-observers mailing list