From 5b910545646ee15450d2069314881735c4d454f9 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Tue, 22 Apr 2014 12:57:08 +0200 Subject: [PATCH] testdata: ensure overload resolution by return type should not take place for interrupted control flow --- .../NoReturnTypeResolutionForThrownException.java | 14 ++++++++++++++ .../daemon/lambda/MostSpecificResolutionTest.java | 4 ++++ 2 files changed, 18 insertions(+) create mode 100644 java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NoReturnTypeResolutionForThrownException.java diff --git a/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NoReturnTypeResolutionForThrownException.java b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NoReturnTypeResolutionForThrownException.java new file mode 100644 index 000000000000..81429131d099 --- /dev/null +++ b/java/java-tests/testData/codeInsight/daemonCodeAnalyzer/lambda/mostSpecific/NoReturnTypeResolutionForThrownException.java @@ -0,0 +1,14 @@ +class Test { + + interface I1 {String m();} + interface I2 {void m();} + + void call(I1 p) { } + void call(I2 p) { } + + void test() { + call(() -> { throw new RuntimeException(); }); + call(() -> { if (true) return ""; throw new RuntimeException(); }); + call(() -> { if (true) return; throw new RuntimeException(); }); + } +} diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MostSpecificResolutionTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MostSpecificResolutionTest.java index 20f634ac2eec..c66c0ad4a008 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MostSpecificResolutionTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/MostSpecificResolutionTest.java @@ -87,6 +87,10 @@ public class MostSpecificResolutionTest extends LightDaemonAnalyzerTestCase { doTest(false); } + public void testNoReturnTypeResolutionForThrownException() throws Exception { + doTest(false); + } + private void doTest() { doTest(true); }