diff -r 843d3b191773 -r 01c9d4161882 test/tools/javac/lambda/VoidCompatibility.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/lambda/VoidCompatibility.java Sat Nov 17 19:01:03 2012 +0000 @@ -0,0 +1,26 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8003280 + * @summary Add lambda tests + * check that that void compatibility affects overloading as expected + * @compile/fail/ref=VoidCompatibility.out -XDrawDiagnostics VoidCompatibility.java + */ +class VoidCompatibility { + + interface Runnable { void run(); } //1 + interface Thunk { T get(); } //2 + + void schedule(Runnable r) { } + void schedule(Thunk t) { } + + void test() { + schedule(() -> System.setProperty("done", "true")); //2 + schedule(() -> { System.setProperty("done", "true"); }); //1 + schedule(() -> { return System.setProperty("done", "true"); }); //2 + schedule(() -> System.out.println("done")); //1 + schedule(() -> { System.out.println("done"); }); //1 + schedule(Thread::yield); //1 + schedule(Thread::getAllStackTraces); //ambiguous + schedule(Thread::interrupted); //1 (most specific) + } +}