Draft LW2 spec

Dan Smith daniel.smith at oracle.com
Fri Jun 14 20:09:32 UTC 2019

> On Jun 14, 2019, at 1:03 PM, forax at univ-mlv.fr wrote:
>>> section 4.3.2:
>>> I don't think that using null as a diferentiator (Nullable/NonNullable) is a
>>> good idea.
>>> Yes, an inline type is not nullable, but it's also flattenable, loaded early,
>>> not circular, etc. This introduce a false dichotomy which we have already spent
>>> too much time. I don't remember the exact words that John is using, but it was
>>> making more sense too me.
>>>  Perhaps only renaming NullFreeClassType to InlineClassType is enough ?
>> I'll think more about this terminology. "Inline class type" is not sufficient,
>> because QVal; and LVal; are *both* inline class types.
> is it not better to try to separate the type notion from the class notion ?
> L and Q are type, L is an identity type, Q an inline type and at runtime an inline class can be typed as an identity type (L) or an inline type (Q).

We're settled on what "inline class" means: a class with the ACC_INLINE flag.

Given that, I think it's hopeless to try to use the term "inline class type" to mean anything other than "a class type naming an inline class". (And "class type" means "a type that names a class".)

As for "identity type": inline class instances do not have identity, so it would not make sense to consider them to have an "identity type". We do not want to be reinforcing the bias people will already bring that says all Objects and interface instances have identity.

More information about the valhalla-spec-observers mailing list