On Mon, 14 Oct 2024 12:46:29 GMT, Jan Lahoda <jlah...@openjdk.org> 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 > > Jan Lahoda has updated the pull request with a new target base due to a merge > or a rebase. The pull request now contains 15 commits: > > - Merge branch 'master' into JDK-8335989 > - Reflecting review feedback. > - Cleanup. > - Cleanup. > - Fixing tests > - Adding a separate scope for module imports. > - Cleanup. > - Make very sure java.base is completed. > - Keep jdk.internal.javac qualified export from java.base. > - Adding forgotten change. > - ... and 5 more: https://git.openjdk.org/jdk/compare/15815089...b5f9df2a src/jdk.compiler/share/classes/com/sun/tools/javac/comp/TypeEnter.java line 454: > 452: // Import on demand. > 453: chk.checkCanonical(imp.selected); > 454: if (tree.staticImport) { I note a discrepancy here - static imports are reflected in the AST, but module import aren't. This is why we need to pass an extra parameter to this method, I believe. Should we generalize the import tree node to have a bunch of flags? ------------- PR Review Comment: https://git.openjdk.org/jdk/pull/21431#discussion_r1808564862