summaryrefslogtreecommitdiff
path: root/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/overloadResolution/VoidValueCompatibilityOfImplicitlyTypedLambda.java
diff options
context:
space:
mode:
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.java23
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);
+ }
+}