Deprecated attribute in module-info.class?
Stephan Herrmann
stephan.herrmann at berlin.de
Thu Mar 29 22:49:04 UTC 2018
On 29.03.2018 18:02, Alan Bateman wrote:
> On 29/03/2018 15:36, Stephan Herrmann wrote:
>> I'm looking at jdk.xml.bind/module-info.class from JDK 9.0.4.
>>
>> I do find a RuntimeVisibleAnnotation attribute representing
>> @java.lang.Deprecated(since="9", forRemoval=true)
>> but I don't find a Deprecated attribute.
>>
>> Is this intended? JVMS 4.7.15 neither includes nor excludes
>> modules, but not generating the Deprecated attribute looks
>> like an omission to me.
> Are you using `javap` to look at the class or something else?
>
> I ask because `javap` tool was updated in JDK 10 to render annotations in a more friendly way. When I use the JDK 10 `javap` to look
> at the jdk.xml.bind's module-info.class from JDK 9 I see:
>
> RuntimeVisibleAnnotations:
> 0: #5(#6=s#7,#8=Z#9)
> java.lang.Deprecated(
> since="9"
> forRemoval=true
> )
>
> whereas the JDK 9 `javap` prints less useful output.
I did use JDK 9 javap, but was able to decipher the
RuntimeVisibleAnnotations attribute as you can see above :)
(Still good to know about the improvement in JDK 10).
My question, however, concerns the lack of a Deprecated
*attribute* a la JVMS 4.7.15.
Is that intended or not?
IOW, are compilers expected to evaluate RuntimeVisibleAnnotations
in order to issue deprecation warnings?
In the past this was not necessary.
best,
Stephan
More information about the jigsaw-dev
mailing list