The module implementation uses the wrong values for ACC_TRANSITIVE and ACC_STATIC_PHASE
Remi Forax
forax at univ-mlv.fr
Wed Feb 1 11:58:01 UTC 2017
If the spec is updated, i really want to get ride of ACC_STATIC_PHASE and uses ACC_STATIC instead.
Renaming public to transitive was the right move but I think we go a little over the top with static.
In the module-info, the Java syntax already uses static, i do not see a lot of value to use a different flag.
As a example, we did not introduce a new flag for static methods in an interface even if they do not have the same behavior as static methods in a class.
Remi
On February 1, 2017 9:22:28 AM GMT+01:00, Alan Bateman <Alan.Bateman at oracle.com> wrote:
>On 30/01/2017 22:15, Remi Forax wrote:
>
>> Hi all,
>> chasing a bug on ASM, i've found that the module implementation in
>the JDK uses the wrong values for ACC_TRANSITIVE and ACC_STATIC_PHASE,
>> in the spec [1],
>> 0x0020 (ACC_TRANSITIVE)
>> 0x0040 (ACC_STATIC_PHASE)
>> but in the implementation [2],
>> public static final int ACC_TRANSITIVE = 0x0010;
>> public static final int ACC_STATIC_PHASE = 0x0020;
>>
>Sigh, we do have a mismatch, I think a consequence of the churn last
>year on the design proposals. Note that javac and the run time are in
>sync so this doesn't impact anyone except when they start using the
>updated ASM to read/write module-info.class. I would like to get the
>spec updates that we are accumulating in jake into JDK 9 before JDK 9
>his ZBB and and right time to sort out the requires_flags too.
>
>-Alan
--
Sent from my Android device with K-9 Mail. Please excuse my brevity.
More information about the jigsaw-dev
mailing list