RFR: 8344647: Make java.se participate in the preview language feature `requires transitive java.base`
Liam Miller-Cushon
cushon at openjdk.org
Sat Dec 7 00:47:39 UTC 2024
On Fri, 22 Nov 2024 13:42:32 GMT, Jan Lahoda <jlahoda at openjdk.org> wrote:
> There is a new preview language feature, `requires transitive java.base;`. And the `java.se` module is permitted to use the feature, without being marked as preview (i.e. the `java.se` module participates in preview). This is currently implemented by the common "participates in preview" way, by checking that `java.base` is exporting `jdk.internal.javac` package to `java.se`.
>
> This common way works OK for internal preview feature and API usage, but turns out it may not be appropriate for this feature: the qualified export of the `jdk.internal.javac` package is not a specified API, it is an implementation detail; and the JLS itself specifies that the `java.se` module is participating in preview.
>
> So this PR proposes to change the way javac handles the `java.se` module: it permits the use of the preview feature based on the module name, instead relying on the internal qualified export.
LGTM, thanks!
I verified this fixes the original issue I was seeing.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/22322#issuecomment-2524711481
More information about the compiler-dev
mailing list