lambda: missed return statement error; do not use containing method return type for lambda inference

This commit is contained in:
Anna Kozlova
2012-09-10 12:24:31 +04:00
parent ae31fc2f27
commit 5a546b640c
8 changed files with 111 additions and 19 deletions

View File

@@ -25,7 +25,7 @@ class Test {
{
boolean flag = true;
I i = flag ? (() -> 123) : (() -> 222);
I i1 = flag ? (<error descr="Missing return value">() -> {}</error>) : (() -> 222);
I i1 = flag ? (() -> {<error descr="Missing return statement">}</error>) : (() -> 222);
Object i2 = flag ? (<error descr="Target type of a lambda conversion must be an interface">() -> 42</error>) : (<error descr="Target type of a lambda conversion must be an interface">() -> 222</error>);
I i3 = flag ? (<error descr="Incompatible parameter types in lambda expression">(x) -> 42</error>) : (() -> 222);
I i4 = flag ? (() -> 42) : new I() {