diff options
Diffstat (limited to 'java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java')
-rw-r--r-- | java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java | 23 |
1 files changed, 23 insertions, 0 deletions
diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java new file mode 100644 index 000000000000..1188a9584dca --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java @@ -0,0 +1,23 @@ +interface A { + int m(int x); +} + +interface B { + void m(boolean x); +} + +abstract class Test { + abstract void foo(A j); + abstract void foo(B i); + + void bar(Object o) { + foo(x -> { + return x += 1; + }); + foo(x -> <error descr="Incompatible types. Found: 'int', required: '<lambda parameter>'">x += 1</error>); + foo(x -> 1); + foo(x -> <error descr="Operator '!' cannot be applied to 'int'">!x</error>); + foo(x -> <error descr="Operator '++' cannot be applied to '<lambda parameter>'">++x</error>); + foo(x -> o instanceof String ? 1 : 0); + } +} |