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


Reply via email to