[sealed-classes] Spec for next version of Sealed Classes

Brian Goetz brian.goetz at oracle.com
Mon Nov 23 21:34:12 UTC 2020


I have reviewed the spec. Very nice how simply the disjointness part 
boiled down.

On 11/4/2020 12:50 PM, Gavin Bierman wrote:
> The permanent location for this spec is now:
>
> http://cr.openjdk.java.net/~gbierman/jep397/latest/ 
> <http://cr.openjdk.java.net/~gbierman/jep397/latest/>
>
> (I have fixed the two issues that Chris spotted [1].)
>
> Comments still welcome!
>
> Gavin
>
> [1] 
> http://mail.openjdk.java.net/pipermail/amber-spec-experts/2020-October/002624.html 
> <http://mail.openjdk.java.net/pipermail/amber-spec-experts/2020-October/002624.html>
>
>> On 23 Oct 2020, at 16:16, Gavin Bierman <gavin.bierman at oracle.com 
>> <mailto:gavin.bierman at oracle.com>> wrote:
>>
>> Dear all:
>>
>> Drafts of the specs for the Sealed Classes feature that we plan to 
>> preview for
>> a second time in JDK 16 are now available:
>>
>> http://cr.openjdk.java.net/~gbierman/8246775/latest/ 
>> <http://cr.openjdk.java.net/~gbierman/8246775/latest/>
>>
>> [NB: The URL will change once we have a JEP number, and will be 
>> announced.]
>>
>> The changes are the same as those in the first preview that was 
>> released in Java
>> SE 15, except for minor editorial changes and the following:
>>
>> - Clarification the use of context when applying the lexical grammar,
>>  particularly in the identification of contextual keywords (formerly 
>> described
>>  as "restricted identifiers" and "restricted keywords"). This is 
>> detailed in a
>>  companion document entitled “Contextual Keywords". The keywords 
>> `sealed`,
>>  `non-sealed`, and `permits` are now defined as new instances of 
>> contextual
>>  keywords (3.9).
>>
>> - This spec now assumes that the changes detailed in companion documents
>>  entitled "Consistent Class and Interface Terminology” and "Local and 
>> Nested
>>  Static Declarations" have been applied (these are being introduced 
>> as part of
>>  the Records JEP). In particular, this means that Java SE 16 will support
>>  static declarations in two new positions:
>>
>>    1. Local, implicitly-static interfaces and enum classes
>>    2. Static members of inner classes
>>
>>  This requires asserting that local interfaces are not permitted to be
>>  `sealed`. (14.3)
>>
>> - To enhance narrowing reference conversion to allow for stricter 
>> checking of
>>  cast conversions with respect to sealed type hierarchies (5.1.6.1).
>>
>> - Local classes are not considered when determining implicitly declared
>>  permitted direct subclasses of a `sealed` class or `sealed` interface
>>  (8.1.6, 9.1.4).
>>
>>
>> Comments welcome!
>>
>> Gavin
>

-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mail.openjdk.java.net/pipermail/amber-spec-experts/attachments/20201123/ee365900/attachment.htm>


More information about the amber-spec-experts mailing list