On Wed, 9 Oct 2024 19:22:01 GMT, Jan Lahoda <[email protected]> wrote:
> This is a current patch for module imports declarations, second preview. At
> least the JEP number and preview revision will need to be updated in
> `jdk.internal.javac.PreviewFeature.Feature`, but otherwise I believe this is
> ready to receive feedback.
>
> The main changes are:
> - `requires transitive java.base;` is permitted, under the preview flag. Both
> javac and the runtime module system are updated to accept this directive when
> preview is enabled.
> - the `java.se` module is using `requires transitive java.base;`, and is
> deemed to be participating in preview, so its classfile version is not
> tainted. Runtime is updated to access `requires transitive java.base;` in any
> `java.*`, considering all of them to be participating in preview. Can be
> tighten up to only `java.se` is desired.
> - the types imported through module imports can be shadowed using on-demand
> imports. So, for example, having:
>
> import module java.base;
> import module java.desktop;
> ...
> List l;//ambigous
>
> but:
>
> import module java.base;
> import module java.desktop;
> import java.util.*;
> ...
> List l;//not ambigous, reference to java.util.List
Can you check if test/jdk/java/lang/module/ClassFileVersionsTest.java should be
updated too?
src/java.base/share/classes/jdk/internal/module/ModuleInfo.java line 193:
> 191: int minor_version = in.readUnsignedShort();
> 192: int major_version = in.readUnsignedShort();
> 193: boolean previewClassfile = minor_version ==
> ClassFile.PREVIEW_MINOR_VERSION;
If you rename this to isPreview then it would make the uses further down easier
to read.
src/java.base/share/classes/jdk/internal/module/ModuleInfo.java line 417:
> 415: //java.* modules are deemed participating in
> preview
> 416: //and are allowed to use requires transitive
> java.base:
> 417: !mn.startsWith("java."))
A block comment before the `if` statement would be a lot clearer here.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/21431#issuecomment-2404032481
PR Review Comment: https://git.openjdk.org/jdk/pull/21431#discussion_r1794661012
PR Review Comment: https://git.openjdk.org/jdk/pull/21431#discussion_r1794662049