import checkers.util.test.Odd; public class Constructors { public Constructors(Constructors con) { } public void testConstructors() { Constructors c = null; new @Odd Constructors(c); } // Test anonymous constructors public Constructors(@Odd String s, int i) { } public void testStaticAnonymousConstructor() { String notOdd = "m"; //:: (argument.type.incompatible) new Constructors(notOdd, 0); // error //:: (argument.type.incompatible) new Constructors(notOdd, 0) { }; // error } private class MyConstructors extends Constructors { public MyConstructors(@Odd String s) { super(s, 0); } } public static void testAnonymousConstructor() { Constructors m = new Constructors(null) { }; String notOdd = "m"; //:: (argument.type.incompatible) m.new MyConstructors(notOdd); // error //:: (argument.type.incompatible) m.new MyConstructors(notOdd) { }; // error } // Tests that should pass public void testPassingTests() { @Odd String odd = null; new Constructors(odd, 0); new Constructors(odd, 0) { }; Constructors m = new Constructors(null) { }; m.new MyConstructors(odd); m.new MyConstructors(odd) { }; } }