find functional expressions by method type parameter

This commit is contained in:
Anna Kozlova
2014-11-05 19:31:52 +01:00
parent 027d201051
commit 234fdbfc4f
4 changed files with 52 additions and 4 deletions
@@ -0,0 +1,11 @@
interface SA<caret>M {
void foo();
}
class Test {
{
SAM sam = bar(() -> {});
}
<T> T bar(T t){ return t;}
}
@@ -42,7 +42,19 @@ public class FindFunctionalInterfaceTest extends LightCodeInsightFixtureTestCase
assertEquals("() -> {}", next.getText());
}
@Bombed(day = 30, month = Calendar.SEPTEMBER)
public void testMethodArgumentByTypeParameter() throws Exception {
myFixture.configureByFile(getTestName(false) + ".java");
final PsiElement elementAtCaret = myFixture.getElementAtCaret();
assertNotNull(elementAtCaret);
final PsiClass psiClass = PsiTreeUtil.getParentOfType(elementAtCaret, PsiClass.class, false);
assertTrue(psiClass != null && psiClass.isInterface());
final Collection<PsiFunctionalExpression> expressions = FunctionalExpressionSearch.search(psiClass).findAll();
assertTrue(expressions.size() == 1);
final PsiFunctionalExpression next = expressions.iterator().next();
assertNotNull(next);
assertEquals("() -> {}", next.getText());
}
public void testFieldFromAnonymousClassScope() throws Exception {
myFixture.configureByFile(getTestName(false) + ".java");
final PsiElement elementAtCaret = myFixture.getElementAtCaret();