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
[3]
http://cr.openjdk.java.net/~jlahoda/8250768/jdk.javadoc.00/api/java.compiler/javax/lang/model/element/RecordComponentElement.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 build-dev
mailing list