You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@groovy.apache.org by Jochen Theodorou <bl...@gmx.org> on 2025/07/08 11:14:36 UTC
Re: Controlled compilation
On 6/17/25 00:08, Saravanan Palanichamy wrote:
> Hi Jochen/Other devs
>
> Please ignore my previous email. I have narrowed down the problem. I
> will state what I am doing first
>
> 1. I have my own ClassNodeResolver that overrides findClassNode and
> finds source units that match the class being looked for. I return
> the sourceunit if the class name and the source unit names match
> (through LookUpResult(sourceUnit)) and I return a class node if I am
> looking for an inner class in the source unit (through
> LookUpResult(ClassHelper.makeWithoutCaching...))
ClassHelper.makeWithoutCaching is for precompiled classes.
> 2. This works up until the very end of Phase SEMANTIC_ANALYSIS
> 3. But when I exit that phase, I see that one source unit is still
> queued. Fortunately, this gets added back because of the dequeued()
> operation (in compilationunit.java) after every phase
> 4. But what ends up happening is that every other phase operation I
> added (all my compiler customizations) have now run twice (first
> before the dequeue operation because the interrupt exception was not
> thrown to stop further phase processing and then after that last
> class has been added back to the compile mix as part of the
> dequeued() call)
should the old source units not gotten into the new phase at this point
already? Unless you add the same twice the phase operations should run
only once for this unit, even with dequeue
bye Jochen