Community
Participate
Working Groups
It seems that Acc_Interface must be set for annotation. But when Acc_Interface is set, Acc_Abstract should also be set. So should annotations have the Acc_Abstract but set?
We do tag annotations as abstract. // Compiled from X.java (version 1.5 : 49.0, no super bit) abstract @interface X extends java.lang.Object implements java.lang.annotation.Annotation { Constant pool: constant #1 utf8: X constant #2 class: #1 X constant #3 utf8: java/lang/Object constant #4 class: #3 java/lang/Object constant #5 utf8: java/lang/annotation/Annotation constant #6 class: #5 java/lang/annotation/Annotation constant #7 utf8: SourceFile constant #8 utf8: X.java } This is only missing for the synthetic type package-info. This is an interface that is not tag as abstract. Update title accordingly.
We do set the synthetic interface as abstract, but javac doesn't. java version "1.5.0_04-ea" Java(TM) 2 Runtime Environment, Standard Edition (build 1.5.0_04-ea-b04) Java HotSpot(TM) Client VM (build 1.5.0_04-ea-b04, mixed mode). javac sets the Acc_Abstract bit for an interface if it is defined on the source code.
Acc_Abstract must be set for any kind of interfaces (synthetic or not). Also when Acc_Annotation is set, Acc_Abstract and Acc_Interface must be set. See http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6232928.
This is what we do already. Closing as INVALID.