[JSR308] Can we agree on our goals?

Tom Ball Tom.Ball at Sun.COM
Thu Feb 1 15:25:35 EST 2007


Eugene Kuleshov wrote:
> Gary T. Leavens wrote:
>> For my part, I would be very happy with adding the ability to have
>> annotations on types and statements (or even just loop statements).
>> I'm not personally trying to use any kind of strategy to lead us down
>> a slippery slope towards annotations on all possible syntactic
>> categories.  I think if Java programmers can annotate declarations,
>> types, and (loop) statements, that will be plenty.
>  Gary, why limit it on loops and not all { } blocks?

At the risk of polluting this discussion with implementation details, 
javac block nodes have an internal modifiers field, and modifiers hold 
annotations.  The Compiler API only allows access to the static flag in 
those modifiers (BlockTree.isStatic()), but that interface can be 
extended in a backwards-compatible way to provide access to the 
annotations.

The advantage of allowing annotations on blocks rather than on 
statements is that developers can surround any statement with a block if 
they want to annotate it, without  having to make radical modifications 
to the compiler.  It should also make scoping issues simpler, too.  I 
haven't thought out what the impact of having block annotations will be 
on JVM classfiles, but suspect that the current proposed attribute will 
work.

Tom



More information about the JSR308 mailing list