diff -r 000000000000 -r 959103a6100f test/tools/javac/lambda/BadLambdaPos.java --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/test/tools/javac/lambda/BadLambdaPos.java Wed Apr 27 01:34:52 2016 +0800 @@ -0,0 +1,31 @@ +/* + * @test /nodynamiccopyright/ + * @bug 8003280 + * @summary Add lambda tests + * check that lambda is only allowed in argument/cast/assignment context + * @author Maurizio Cimadamore + * @compile/fail/ref=BadLambdaPos.out -XDrawDiagnostics BadLambdaPos.java + */ + +interface SAM { + void m(Integer x); +} + +class Test { + void test(Object x) {} + + void test1() { + test((int x)-> { } + (int x)-> { } ); + test((int x)-> { } instanceof Object ); + } + + void test2() { + int i2 = (int x)-> { } + (int x)-> { }; + boolean b = (int x)-> { } instanceof Object; + } + + void test3() { + test((Object)(int x)-> { }); + Object o = (Object)(int x)-> { }; + } +}