class Expr {
	private class Ancestor {}
	private class Subject extends Ancestor {}
	private class Descendant extends Subject {}

	private Subject myField;

	public void meth() {
		myField = new Ancestor();
		myField = this.new Ancestor();
		myField = new Ancestor() {};

		myField = new Subject();
		myField = this.new Subject();
		myField = new Subject() {};

		myField = new Descendant();
		myField = this.new Descendant();
		myField = new Descendant() {};
	}
}
