javap and nullable projection types.
John Rose
john.r.rose at oracle.com
Thu May 9 20:23:11 UTC 2019
On May 9, 2019, at 6:05 AM, Maurizio Cimadamore <maurizio.cimadamore at oracle.com> wrote:
>
> I was under the impression that descriptors other than 'L' were being considered?
Yes, we need them because we need a new contract.
But those are not the descriptors you are looking for.
The translation strategy will use classic L-descriptors
for the old contract and new descriptors for the new
contract.
If a class C is an indirect class, then only L-descriptors
"LC;" will be used.
If a class V is an inline class, then either "LV;" or "L*V;"
is in play (where L* is a new descriptor kind Q, G, etc.).
The tricky bit is that V natively translates to "L*V;" and
the projection V? translates to old-contract "LV;".
Thus, any given "LV;" in a classfile might either be some
classic C, or some V? for an inline V.
So there's a side bit required.
— John
More information about the valhalla-dev
mailing list