On 29.06.23 20:39, Christopher Smith wrote:
Implementing javax.annotation.processing would cover a lot of surface area because it exposes the Java AST (via the RoundEnvironment methods) and the entire TypeMirror "Spock in a goatee" representation of the Java classes under processing. This means that the Groovy AST would need *two* facades, and irritatingly the javac implementations are all unexported (which has been causing me problems in my Java annotation processors when using reflective property access).
It would be quite a bit of work, and since we have a mutable AST with no tracking for modifications we would have to create that AST for annotation processors every round new. I guess I would go with a kind of "generate it when requested approach". Ideally a full AST is not required... Because of the Java module system I am actually expecting a lot of annotations to not be processed at runtime, but at compile time. Since this is a slow moving target it is not urgent though bye Jochen