diff -r 000000000000 -r 959103a6100f test/tools/javac/lambda/BadReturn.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/lambda/BadReturn.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,38 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8003280 + * @summary Add lambda tests + * check that incompatible return types in lambdas are flagged with error + * @author Maurizio Cimadamore + * @compile/fail/ref=BadReturn.out -XDrawDiagnostics BadReturn.java + */ + +class BadReturn { + + interface SAM { + Comparable m(); + } + + static void testNeg1() { + SAM s = ()-> { + if (true) { + return ""; + } else { + return System.out.println(""); + }}; + } + + static void testNeg2() { + SAM s = ()-> { return System.out.println(""); }; + } + + static void testPos() { + SAM s = ()-> { + if (false) { + return 10; + } + else { + return true; + }}; + } +}