// reference before ctr called
import java.io.*;
import java.net.*;
class a {
a(int i) {}
a(a a) {}
int f() { return 0; }
int fi;
}
class b extends a {
int bi;
b(int h) {
super(bi);
}
b() {
this(bi);
}
b(String s) {
super(db(1) );
}
b(int i, int j) {
super(f());
}
b(int i, int j, int k) {
super(super.f());
}
b(String s, int i) {
super(s.length());
}
b(int s, int i, char j) {
super(super.fi );
}
b(double d) {
super(new inner() );
}
class inner extends a {inner(){super(1);}}
int db(int j) {
return 0;
}
}
class enc {
int ienc;
class bb extends a {
int ibb;
bb() { super(ienc); }
bb(int i) {
super(i);
}
bb(int i, int j) {
super(enc.bb.this.ibb );
}
bb(int i, String s) {
super(enc.this.ienc);
}
bb(int i, char j) {
super(this );
}
}
enc() {
this(new bb());
}
enc(bb b) {}
}
// static are OK
class c2 extends a {
static final int fi = 4;
c2() {
super(fi);
}
c2(int i) {
super(sf());
}
static int sf() { return 0; }
c2(int i, int j) {
super(new sc().i);
}
static class sc {
int i;
}
}
interface Callback {
void call();
}
class Base {
Callback callback;
public Base(final Callback callback) {
this.callback = callback;
}
}
class YellinBug extends Base {
public YellinBug() {
super(new Callback() {
public void call() {
YellinBug.this.f();
}
});
}
private void f() {}
{
new Callback() {
public void call() {
YellinBug.this.f();
}
};
}
}
class Outer {
class Inner extends Outer{}
class UseIt extends Inner{
Outer o;
UseIt() {
o.super();
}
Outer geto() {
return null;
}
UseIt(int x) {
geto().super();
}
UseIt(Outer x) {
this.super();
}
}
}