class Test { interface IFactory { Object m(); } @interface Anno {} enum E {} interface I {} static class Foo<X> { } static abstract class ABar { protected ABar() { } } static abstract class ABaz { } void foo(IFactory cf) { } void testAssign() { IFactory c1 = <error descr="'Anno' is abstract; cannot be instantiated">Anno::new</error>; IFactory c2 = <error descr="Enum types cannot be instantiated">E::new</error>; IFactory c3 = <error descr="'I' is abstract; cannot be instantiated">I::new</error>; IFactory c4 = <error descr="Unexpected wildcard">Foo<?></error>::new; IFactory c5 = <error descr="Cannot find class 1">1</error>::new; IFactory c6 = <error descr="'ABar' is abstract; cannot be instantiated">ABar::new</error>; IFactory c7 = <error descr="'ABaz' is abstract; cannot be instantiated">ABaz::new</error>; foo(<error descr="'Anno' is abstract; cannot be instantiated">Anno::new</error>); foo(<error descr="Enum types cannot be instantiated">E::new</error>); foo(<error descr="'I' is abstract; cannot be instantiated">I::new</error>); foo(<error descr="Unexpected wildcard">Foo<?></error>::new); foo(<error descr="Cannot find class 1">1</error>::new); foo(<error descr="'ABar' is abstract; cannot be instantiated">ABar::new</error>); foo(<error descr="'ABaz' is abstract; cannot be instantiated">ABaz::new</error>); } }