RFR: JDK-8250768: javac should be adapted to changes in JEP 12

Jan Lahoda jlahoda at openjdk.java.net
Fri Oct 16 15:27:22 UTC 2020

This is an update to javac and javadoc, to introduce support for Preview APIs, and generally improve javac and javadoc
behavior to more closely adhere to JEP 12.

The notable changes are:

 * adding support for Preview APIs (javac until now supported primarily only preview language features, and APIs
   associated with preview language features). This includes:
     * the @PreviewFeature annotation has boolean attribute "reflective", which should be true for reflective Preview APIs,
       false otherwise. This replaces the existing "essentialAPI" attribute with roughly inverted meaning.
     * the preview warnings for preview APIs are auto-suppressed as described in the JEP 12. E.g. the module that declares the
       preview API is free to use it without warnings
 * improving error/warning messages. Please see [1] for a list of cases/examples.
 * class files are only marked as preview if they are using a preview feature. [1] also shows if a class file is marked as
   preview or not.
 * the PreviewFeature annotation has been moved to jdk.internal.javac package (originally was in the jdk.internal package).
 * Preview API in JDK's javadoc no longer needs to specify @preview tag in the source files. javadoc will auto-generate a
   note for @PreviewFeature elements, see e.g. [2] and [3] (non-reflective and reflective API, respectively). A summary of
   preview elements is also provided [4]. Existing uses of @preview have been updated/removed.
 * non-JDK javadoc is also enhanced to auto-generate preview notes for uses of Preview elements, and for declaring
   elements using preview language features [5].
 Please also see the CSR [6] for more information.
 [1] http://cr.openjdk.java.net/~jlahoda/8250768/JEP12-errors-warnings-v6.html
 [2] http://cr.openjdk.java.net/~jlahoda/8250768/jdk.javadoc.00/api/java.base/java/lang/Record.html
 [4] http://cr.openjdk.java.net/~jlahoda/8250768/jdk.javadoc.00/api/preview-list.html [5]
 http://cr.openjdk.java.net/~jlahoda/8250768/test.javadoc.00/ [6] https://bugs.openjdk.java.net/browse/JDK-8250769


Commit messages:
 - Fixing tests.
 - Various cleanup.
 - The Preview taglet is not needed anymore.
 - There is not jdk.internal package anymore
 - No, jdk.incubator.vector does not need jdk.internal package.
 - Merging master into JDK-8250768
 - Fixing tests.
 - Adding forgotten files.
 - Updating build.
 - Post-merge fix.
 - ... and 19 more: https://git.openjdk.java.net/jdk/compare/9359ff03...efb37a9b

Changes: https://git.openjdk.java.net/jdk/pull/703/files
 Webrev: https://webrevs.openjdk.java.net/?repo=jdk&pr=703&range=00
  Issue: https://bugs.openjdk.java.net/browse/JDK-8250768
  Stats: 3179 lines in 158 files changed: 2487 ins; 410 del; 282 mod
  Patch: https://git.openjdk.java.net/jdk/pull/703.diff
  Fetch: git fetch https://git.openjdk.java.net/jdk pull/703/head:pull/703

PR: https://git.openjdk.java.net/jdk/pull/703

More information about the compiler-dev mailing list