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 ------------- Commit messages: - Moving checkPackageAccess from getPermittedSubclasses to a separate method. - Improving getPermittedSubclasses() javadoc. - Enhancing the Class.getPermittedSubclasses() test to verify behavior both for sealed classes in named and unnamed modules. - Removing unnecessary file. - Tweaking javadoc. - Reflecting review comments w.r.t. narrowing conversion. - Improving checks in getPermittedSubclasses() - Merging master into JDK-8246778 - Adding checkPackageAccess to Class.getPermittedSubclasses(). - 8246778: Compiler implementation for Sealed Classes (Second Preview) Changes: https://git.openjdk.java.net/jdk/pull/1483/files Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=1483&range=00 Issue: https://bugs.openjdk.java.net/browse/JDK-8246778 Stats: 915 lines in 12 files changed: 834 ins; 9 del; 72 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