diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122074.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122074.java new file mode 100644 index 000000000000..02cdd6c702c7 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122074.java @@ -0,0 +1,15 @@ +class CyclicInferenceBug { + interface Func1 { + R apply(T1 v1); + void other(); + } + interface F1 extends Func1 { + default void other() {} + } + + Func1 func(F1 f1) { return f1; } + + void test() { + Func1 f1 = func(s -> s); + } +} \ No newline at end of file diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122084.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122084.java new file mode 100644 index 000000000000..1995793fd020 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/newLambda/IDEA122084.java @@ -0,0 +1,18 @@ +class InferenceFailBug { + interface Func1 { + R apply(T1 v1); + void other(); + } + interface F1 extends Func1 { + default void other() {} + } + + Func1 func(F1 f1) { return f1; } + + interface Future { + Future map(Func1 f1); + } + private Future futureExample(Future future) { + return future.map(func(s -> s.toUpperCase())).map(func(s -> s.length())); + } +} \ No newline at end of file diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java index a3c2b12515eb..566cd7d1b4f3 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/NewLambdaHighlightingTest.java @@ -154,6 +154,14 @@ public class NewLambdaHighlightingTest extends LightDaemonAnalyzerTestCase { doTest(); } + public void testIDEA122074() throws Exception { + doTest(); + } + + public void testIDEA122084() throws Exception { + doTest(); + } + private void doTest() { doTest(false); }