import java.lang.annotation.*;
@interface A { }
@Target(ElementType.TYPE_USE)
@interface TA { }
class C {
@Override
public String toString(@TA C this) { return ""; }
@Override
public boolean equals(@TA C this, @TA Object other) { return false; }
@interface Anno { String f(Anno this); }
void m0() {
Runnable r = (C C.this) -> { };
}
void m1a(final C this) { }
void m1b(@A C this) { }
void m2(@TA Object other, @TA C this) { }
void m3a(@TA Object this) { }
void m3b(@TA int this) { }
void m4a(C C.this) { }
void m4b(C C.X.this) { }
void m5() {
class L {
L(C C.this) { }
}
}
static void sm1(@TA Object this) { }
C(C this) { }
static class X {
X(X this) { }
}
class B {
B(C C.this) { }
B(B C.this, int p) { }
B(C B.this, long p) { }
B(C this, float p) { }
}
}