replace method reference with lambda: default constructor processing (IDEA-93025)

This commit is contained in:
anna
2012-10-16 18:29:19 +02:00
parent 0facdd6517
commit 3e198a4c4c
4 changed files with 26 additions and 0 deletions
@@ -87,6 +87,8 @@ public class ReplaceMethodRefWithLambdaIntention extends Intention {
final PsiClass containingClass = ((PsiMember)resolveElement).getContainingClass();
LOG.assertTrue(containingClass != null);
isReceiver = LambdaUtil.isReceiverType(functionalInterfaceType, containingClass, (PsiMethod)resolveElement);
} else if (resolveElement instanceof PsiClass) {
isReceiver = LambdaUtil.isReceiverType(functionalInterfaceType, (PsiClass)resolveElement, (PsiMethod)null);
}
final PsiElement referenceNameElement = referenceExpression.getReferenceNameElement();
@@ -0,0 +1,10 @@
class Test1 {
class Inner {}
void test() {
BlahBlah6 blahBlah62 = Inner:<caret>:new;
}
}
interface BlahBlah6 {
Test1.Inner foo6(Test1 p);
}
@@ -0,0 +1,10 @@
class Test1 {
class Inner {}
void test() {
BlahBlah6 blahBlah62 = (p) -> p.new Inner();
}
}
interface BlahBlah6 {
Test1.Inner foo6(Test1 p);
}
@@ -85,4 +85,8 @@ public class ReplaceMethodReferenceWithLambdaIntentionTest extends IPPTestCase {
public void testTypeElementOnTheLeft() throws Exception {
doTest();
}
public void testNewDefaultConstructor() throws Exception {
doTest();
}
}