From e3810e85b0fc5aebe2840ebb529f64e129467597 Mon Sep 17 00:00:00 2001 From: Anna Kozlova Date: Mon, 16 Feb 2015 15:05:40 +0100 Subject: [PATCH] not pertinent to applicability nested lambda test --- .../lambda/PsiPolyExpressionUtilTest.java | 19 +++++++++++++++++++ 1 file changed, 19 insertions(+) diff --git a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/PsiPolyExpressionUtilTest.java b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/PsiPolyExpressionUtilTest.java index 8012ee51a960..d589910c8be4 100644 --- a/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/PsiPolyExpressionUtilTest.java +++ b/java/java-tests/testSrc/com/intellij/codeInsight/daemon/lambda/PsiPolyExpressionUtilTest.java @@ -131,6 +131,25 @@ public class PsiPolyExpressionUtilTest extends LightCodeInsightFixtureTestCase { " }")); } + public void testPertinentNestedLambdaExpressionWhenTargetIsTypeParameterOfMethod() throws Exception { + myFixture.configureByText("Foo.java", "interface Supplier { T get();}" + + "class Foo {" + + " { Supplier x = foo (() -> () -> {});}\n" + + " static Supplier foo(Supplier delegate) {\n" + + " return null;\n" + + " }\n" + + "}"); + final PsiElement elementAtCaret = myFixture.getFile().findElementAt(myFixture.getCaretOffset()); + assertNotNull(elementAtCaret); + final PsiExpression psiExpression = PsiTreeUtil.getParentOfType(elementAtCaret, PsiExpression.class); + assertInstanceOf(psiExpression, PsiLambdaExpression.class); + final PsiClass aClass = myFixture.findClass("Foo"); + assertNotNull(aClass); + final PsiMethod[] meths = aClass.findMethodsByName("foo", false); + assertTrue(meths.length == 1); + assertFalse(InferenceSession.isPertinentToApplicability(psiExpression, meths[0])); + } + private boolean doTestLambdaPertinent(final String barText) { myFixture.configureByText("Foo.java", "import java.util.*;" + "class Foo {" +