I think these are the relevant cites (below). Long story short, due to the potential for circular dependencies, the Groovy is processed minimally to be able to generate “stub” information that the Java compiler can use to make links. I have run some experiments where there is more stages of compilation applied to source references (this is in Eclipse), but I don’t have anything that survives circular dependencies. I do have stashes if you want to try and revisit.
The AST transformation class is processed by the development environment if it can detect a source reference. Typically these classes would be supplied through libraries as binary (class file only) dependencies. We can talk more about this separately as there should be some minimal support for having AST transforms in a referenced project and I’ve even attempted to allow “main” sources supply transforms and “test” sources of the same project consume them. Rest assured that during class file generation, the sources are put through the full bevy of compilation phases. This is where the target directory is meaningful and is supplied by the dev env. https://issues.apache.org/jira/browse/GROOVY-7764 (or see the “Stub generator / Joint compiler” component in Jira) https://github.com/groovy/groovy-eclipse/issues/704 https://github.com/groovy/groovy-eclipse/issues/606 https://github.com/groovy/groovy-eclipse/issues/421 https://github.com/groovy/groovy-eclipse/issues/175 From: Christopher Smith <chry...@gmail.com> Sent: Wednesday, September 21, 2022 12:37 PM To: dev@groovy.apache.org Subject: [EXT] GRECLIPSE: ASTT processing through later compile phases External Email: Use caution with links and attachments. As I understand the current state, GRECLIPSE processes the AST up through the CONVERSION phase only for various reasons, and (importantly) even if no editor for `TransformedClass.groovy` is open, it still analyzes `TransformedClass` for members through internal recompilation instead of referring to `TransformedClass.class`, meaning that members added by ASTTs produce editor errors (and don't auto-complete) even if compiling correctly. I understand there have been attempts to extend ASTT processing through CANONICALIZATION, which would be immensely helpful to my team. (1) Is there somewhere that this work is filed so that I don't clutter up trackers, and (2) is there anything that I can do to assist extending the processing through SEMANTIC_ANALYSIS or CANONICALIZATION? -- Christopher Smith