RFR: 8246778: Compiler implementation for Sealed Classes (Second Preview) [v3]
Jan Lahoda
jlahoda at openjdk.java.net
Wed Dec 2 14:40:15 UTC 2020
> This pull request replaces https://github.com/openjdk/jdk/pull/1227.
>
> From the original PR:
>
>> Please review the code for the second iteration of sealed classes. In this iteration we are:
>>
>> * Enhancing narrowing reference conversion to allow for stricter checking of cast conversions with respect to sealed type hierarchies
>>
>> * Also local classes are not considered when determining implicitly declared permitted direct subclasses of a sealed class or sealed interface
>>
>> * renaming Class::permittedSubclasses to Class::getPermittedSubclasses, still in the same method, the return type has been changed to Class<?>[] instead of the previous ClassDesc[]
>>
>> * adding code to make sure that annotations can't be sealed
>>
>> * improving some tests
>>
>>
>> TIA
>>
>> Related specs:
>> [Sealed Classes JSL](http://cr.openjdk.java.net/~gbierman/jep397/jep397-20201104/specs/sealed-classes-jls.html)
>> [Sealed Classes JVMS](http://cr.openjdk.java.net/~gbierman/jep397/jep397-20201104/specs/sealed-classes-jvms.html)
>> [Additional: Contextual Keywords](http://cr.openjdk.java.net/~gbierman/jep397/jep397-20201104/specs/contextual-keywords-jls.html)
>
> This PR strives to reflect the review comments from 1227:
> * adjustments to javadoc of j.l.Class methods
> * package access checks in Class.getPermittedSubclasses()
> * fixed to the narrowing conversion/castability as pointed out by Maurizio
Jan Lahoda has updated the pull request incrementally with one additional commit since the last revision:
Improving Class.getPermittedSubclasses to filter out permitted classes that are not a subtype of the current class, and other adjustments per the review feedback.
-------------
Changes:
- all: https://git.openjdk.java.net/jdk/pull/1483/files
- new: https://git.openjdk.java.net/jdk/pull/1483/files/4d484179..ff1abf06
Webrevs:
- full: https://webrevs.openjdk.java.net/?repo=jdk&pr=1483&range=02
- incr: https://webrevs.openjdk.java.net/?repo=jdk&pr=1483&range=01-02
Stats: 250 lines in 8 files changed: 217 ins; 14 del; 19 mod
Patch: https://git.openjdk.java.net/jdk/pull/1483.diff
Fetch: git fetch https://git.openjdk.java.net/jdk pull/1483/head:pull/1483
PR: https://git.openjdk.java.net/jdk/pull/1483
More information about the core-libs-dev
mailing list