Miranda methods and Methods added by Code Generators

Maurizio Cimadamore maurizio.cimadamore at oracle.com
Mon Aug 9 06:11:25 PDT 2010


> Your description of the current situation is not quite accurate. When 
> javac compiles the source of Child it is not at that time compiling 
> the source of Parent. It only has the bytecode of Parent available 
> (the generated SYNTHETIC method _only occurs_ in the bytecode). So, it 
> is possible for javac to end up finding SYNTHETIC methods in its 
> method tables which it has not itself introduced directly through 
> analysis of source code.
Are you suggesting that the check can erroneously fail in a scenario 
without AOP? If so, please post an example.
>
> What I don't understand is why you have to rely on just the SYNTHETIC 
> attribute to identify the cases which javac should discount. Looking 
> at ClassWriter.java it appears that bridge methods are written to the 
> classfile with the BRIDGE attribute. Similarly, Miranda methods are 
> written with the SYNTHETIC and ABSTRACT attribute. So, why 
> automatically discount SYNTHETIC methods? Could you not instead 
> discount SYNTHETIC|BRIDGE or SYNTHETIC|ABSTRACT methods?
That's what I had in mind when I said that the check could be perceived 
as too strict.

Maurizio



More information about the compiler-dev mailing list