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.

-------------

Commit messages:
 - 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.
 - Merge branch 'module-imports' of github.com:lahodaj/jdk into module-imports
 - ... and 5 more: https://git.openjdk.org/jdk/compare/f26e4308...9cab0ae8

Changes: https://git.openjdk.org/jdk/pull/18614/files
  Webrev: https://webrevs.openjdk.org/?repo=jdk&pr=18614&range=00
  Issue: https://bugs.openjdk.org/browse/JDK-8328935
  Stats: 1065 lines in 28 files changed: 989 ins; 11 del; 65 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

Reply via email to