1/* 2 * @test /nodynamiccopyright/ 3 * @bug 8003280 4 * @summary Add lambda tests 5 * check that that void compatibility affects overloading as expected 6 * @compile VoidCompatibility.java 7 */ 8class VoidCompatibility { 9 10 interface Runnable { void run(); } //1 11 interface Thunk<T> { T get(); } //2 12 13 void schedule(Runnable r) { } 14 void schedule(Thunk<?> t) { } 15 16 void test() { 17 schedule(() -> System.setProperty("done", "true")); //non-void most specific 18 schedule(() -> { System.setProperty("done", "true"); }); //1 19 schedule(() -> { return System.setProperty("done", "true"); }); //2 20 schedule(() -> System.out.println("done")); //1 21 schedule(() -> { System.out.println("done"); }); //1 22 schedule(Thread::yield); //1 23 schedule(Thread::getAllStackTraces); //non-void most specific 24 schedule(Thread::interrupted); //1 (most specific) 25 } 26} 27