// instantiate abstract
public class a {
  void f() {
    <error descr="'ii' is abstract; cannot be instantiated">new ii()</error>;

    <error descr="'c1' is abstract; cannot be instantiated">new c1()</error>;

    new <error descr="Class 'Anonymous class derived from c1' must implement abstract method 'f1(int)' in 'c1'">c1</error>() {
      public void f2() {}
    };

    new <error descr="Class 'Anonymous class derived from c1' must implement abstract method 'f1(int)' in 'c1'">c1</error>() {
      public void f1() {}
    };

    new c1() {
      public void f1(int i) {}
      public <error descr="Abstract method in non-abstract class">abstract</error> void f2();
    };


    new c1() {
      public void f1(int i) {}
    };
    new ii() { public void f1(){} public void f2(){} };

  }
}
abstract class c1 {
  abstract public void f1(int i);
  Object o = new c1[0];
}

interface ii {
  abstract void f1();
  void f2();
}

