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

Reply via email to