-
Bug
-
Resolution: Fixed
-
P4
-
9
The mandated dependence on java.base should be operative in all phases, so 'requires static java.base' should be banned. Since _all_ modules will then depend on java.base _all_ the time, there is no value in a _transitive_ dependence on java.base, so 'requires transitive java.base' should be banned too.
Accordingly, in addition to the JLS saying what happens if the declaration of a module DOES NOT express a dependence on java.base, the JLS should say that if the declaration of a module DOES express a dependence on java.base, and the module is not itself java.base, then no modifiers are allowed after 'requires'. (Similar rule in the JVMS, for Module.requires[].requires_flags, predicated on a v54 class file version.)
Accordingly, in addition to the JLS saying what happens if the declaration of a module DOES NOT express a dependence on java.base, the JLS should say that if the declaration of a module DOES express a dependence on java.base, and the module is not itself java.base, then no modifiers are allowed after 'requires'. (Similar rule in the JVMS, for Module.requires[].requires_flags, predicated on a v54 class file version.)
- relates to
-
JDK-8193125 javac should not compile a module if it requires java.base with modifiers
-
- Resolved
-
-
JDK-8273245 4.7.25: Fix misstatement about java.base for requires_flags
-
- Resolved
-
-
JDK-8191867 Module attribute in 54.0+ class file cannot contains a requires java.base with ACC_TRANSITIVE or ACC_STATIC_PHASE
-
- Resolved
-
-
JDK-8193625 jck test lang/MOD/mod007/mod00701m2/mod00701m2.html fails
-
- Closed
-