Semantics of an empty PermittedSubtypes attribute for the VM
vicente.romero at oracle.com
Thu Apr 2 18:12:56 UTC 2020
On 4/2/20 10:19 AM, Brian Goetz wrote:
> At the language level, we won’t let you define a class with an empty set of permitted types; you should define a final class instead.
> But, having the VM treat an empty PS attribute as if it were not there seems wrong; I would think an empty PS attribute would be a class file error.
I was chatting about this with Harold and we can tweak the VM
implementation to generate an error in this case instead of ignoring an
empty PS attribute. Same for final classes with a PS attribute, but
these are still open questions in the VM spec that need clarification.
>> On Apr 2, 2020, at 7:58 AM, Remi Forax <forax at univ-mlv.fr> wrote:
>> Hi all,
>> With my ASM hat,
>> from the JVMS POV, javac can not generate an empty list of permitted subtypes and the implementation in Hotspot ignores the attribute PermittedSubtypes if there is no subtype listed.
>> So currently, ASM doesn't allow you to create an attribute PermittedSubtypes with an empty number of subtypes.
>> I believe this is the correct semantics, i just want to be sure that i've not overlook something.
More information about the amber-spec-experts