public class LocalClass { @A(1) Object f; void m() { class InnerLocalClass { @A(2) Object f; } new Object() { @A(3) Object f; class Test{ @A(4) Object f; void m() { new Object() { @A(41) Object f; }; new Object() { @A(42) Object f; }; } } }; new Object() { @A(31) Object f; }; } void m2() { class InnerLocalClass { @A(5) Object f; class Inner { @A(6) Object f; void m() { new Object() { @A(7) Object f; }; new Object() { @A(71) Object f; }; } } void m() { class OuterLocalClass { @A(10) Object f; } } } } void m3() { class OuterLocalClass { @A(8) Object f; void m() { class InnerLocalClass { @A(9) Object f; } } } } }