RFR: 8328481: Implement Module Imports [v2]
Jan Lahoda
jlahoda at openjdk.org
Thu Apr 4 14:13:27 UTC 2024
> This is an implementation of JEP JDK-8315129: Module Import Declarations (Preview). Please see the JEP for details:
> https://bugs.openjdk.org/browse/JDK-8315129
>
> It is mostly straightforward - the module imports are parsed, and then expanded to import-on-demand in `TypeEnter`.
> There is a few notable aspects, however:
> - the AST node for import (`JCImport`) is holding the imported element as a field access, because so far, the imported element always had to have a '.' (even for import-on-demand). But for module imports, it is permissible to import from a module whose name does not have a dot (`import module m;`). The use of field access for ordinary import seems very useful, so I preferred to keep that, and created a new internal-only AST node for module imports. There is still only one public API AST node/interface, so this is purely an implementation choice.
> - JShell now supports module imports as well; and the default, implicit, script is changed to use it to import all of `java.base` if preview is enabled. It is expected that the default would be changed if/when the module imports feature is finalized.
Jan Lahoda has updated the pull request with a new target base due to a merge or a rebase. The incremental webrev excludes the unrelated changes brought in by the merge/rebase. The pull request contains 16 additional commits since the last revision:
- Merge branch 'master' into module-imports
- Merge branch 'master' into module-imports
- Fixing test.
- Fixing disambiguation of module imports.
- Fixing file name computation.
- Merge branch 'master' into module-imports
- Cleanup.
- Fixing CheckExamples.
- Adding support for import modules to JShell.
- More correct handling of requires transitive.
- ... and 6 more: https://git.openjdk.org/jdk/compare/c0c0131b...3f2deab9
-------------
Changes:
- all: https://git.openjdk.org/jdk/pull/18614/files
- new: https://git.openjdk.org/jdk/pull/18614/files/9cab0ae8..3f2deab9
Webrevs:
- full: https://webrevs.openjdk.org/?repo=jdk&pr=18614&range=01
- incr: https://webrevs.openjdk.org/?repo=jdk&pr=18614&range=00-01
Stats: 318 lines in 18 files changed: 46 ins; 198 del; 74 mod
Patch: https://git.openjdk.org/jdk/pull/18614.diff
Fetch: git fetch https://git.openjdk.org/jdk.git pull/18614/head:pull/18614
PR: https://git.openjdk.org/jdk/pull/18614
More information about the core-libs-dev
mailing list