Request for feedback on annotation processing API changes made in JDK 9

Alex Buckley alex.buckley at
Fri Apr 7 21:46:46 UTC 2017

On 4/5/2017 4:31 PM, Joseph D. Darcy wrote:

- ModulePrefix in Processor::getSupportedAnnotationTypes would benefit 
from using ModuleName (JLS9 6.5, 6.5.3) rather than TypeName.

- I was surprised that ModuleElement.Directive says "Represents a 
***"module statement"*** within the declaration of this module." because 
the whole point of adopting "directive" was to avoid reusing the term 
"statement". Please consider borrowing terminology from JLS9 7.7 [1], 
such as "The directives of a module declaration configure the module in 
the Java Platform Module System."

- ModuleElement provides access to "information about the module, ***its 
directives***, and its members."

- Semantically, ModuleElement::getSimpleName makes even less sense than 
PackageElement::getSimpleName. At least for the latter, two 
PackageElements having different simple names is a meta-level guarantee 
that code in one package can't access package-access types in the other 
package. But for the former, two ModuleElements having different simple 
names tells you nothing about anything.


[1] -- 
obviously not the Final Release, but 7.7 is a stable section number.

More information about the compiler-dev mailing list