mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
replace lambda with anonymous: hide for cyclic inference cases
This commit is contained in:
+1
-1
@@ -91,7 +91,7 @@ public class ReplaceLambdaWithAnonymousIntention extends Intention {
|
||||
final PsiLambdaExpression lambdaExpression = PsiTreeUtil.getParentOfType(element, PsiLambdaExpression.class);
|
||||
if (lambdaExpression != null && PsiTreeUtil.isAncestor(lambdaExpression.getParameterList(), element, false)) {
|
||||
final PsiType functionalInterfaceType = lambdaExpression.getFunctionalInterfaceType();
|
||||
return functionalInterfaceType != null && LambdaUtil.getFunctionalInterfaceMethod(functionalInterfaceType) != null;
|
||||
return functionalInterfaceType != null && LambdaUtil.getFunctionalInterfaceMethod(functionalInterfaceType) != null && LambdaUtil.isLambdaFullyInferred(lambdaExpression, functionalInterfaceType);
|
||||
}
|
||||
return false;
|
||||
}
|
||||
|
||||
+13
@@ -0,0 +1,13 @@
|
||||
class Test2 {
|
||||
class Y<T>{}
|
||||
|
||||
interface I<X> {
|
||||
X foo(Y<X> list);
|
||||
}
|
||||
|
||||
static <T> I<T> bar(I<T> i){return i;}
|
||||
|
||||
{
|
||||
bar(<caret>x -> x);
|
||||
}
|
||||
}
|
||||
+4
@@ -27,6 +27,10 @@ public class ReplaceLambdaWithAnonymousIntentionTest extends IPPTestCase {
|
||||
doTest();
|
||||
}
|
||||
|
||||
public void testCyclicInference() {
|
||||
assertIntentionNotAvailable();
|
||||
}
|
||||
|
||||
public void testNoFunctionalInterfaceFound() {
|
||||
assertIntentionNotAvailable();
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user