'In ASM 9.2 as argument of Inner class constructor, how to differentiate outer class argument (added by compiler) vs written in code?

To access the outer class, if the inner class contains constructors without the outer class reference as an argument, the compiler can add the outer class reference as an argument. In ASM 9.2 byte code decompiler, is there any way to know whether that argument was added by the compiler or it was written in the code already?



Solution 1:[1]

In general, there is no way. Newer javac versions add the MANDATED modifier to generated parameters for which you can check. Also, the constructor itself can be marked SYNTHETIC.

Sources

This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.

Source: Stack Overflow

Solution Source
Solution 1 Rafael Winterhalter