mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
accept array types as receivers without subst checks
This commit is contained in:
@@ -191,6 +191,7 @@ public class PsiMethodReferenceUtil {
|
||||
}
|
||||
|
||||
public static boolean isReceiverType(PsiType receiverType, @Nullable PsiClass containingClass, PsiSubstitutor psiSubstitutor) {
|
||||
boolean arrayType = receiverType instanceof PsiArrayType;
|
||||
if (containingClass != null) {
|
||||
receiverType = getExpandedType(receiverType, containingClass);
|
||||
}
|
||||
@@ -198,7 +199,8 @@ public class PsiMethodReferenceUtil {
|
||||
final PsiClass receiverClass = resolveResult.getElement();
|
||||
if (receiverClass != null && isReceiverType(receiverClass, containingClass)) {
|
||||
LOG.assertTrue(containingClass != null);
|
||||
return resolveResult.getSubstitutor().equals(psiSubstitutor) ||
|
||||
return arrayType ||
|
||||
resolveResult.getSubstitutor().equals(psiSubstitutor) ||
|
||||
emptyOrRaw(containingClass, psiSubstitutor) ||
|
||||
emptyOrRaw(receiverClass, resolveResult.getSubstitutor());
|
||||
}
|
||||
|
||||
+1
-2
@@ -92,8 +92,7 @@ public class ReplaceMethodRefWithLambdaIntention extends Intention {
|
||||
|
||||
final boolean onArrayRef =
|
||||
JavaPsiFacade.getElementFactory(element.getProject()).getArrayClass(PsiUtil.getLanguageLevel(element)) == containingClass;
|
||||
boolean isReceiver = onArrayRef && resolveElement instanceof PsiMethod ||
|
||||
PsiMethodReferenceUtil.isReceiverType(functionalInterfaceType, containingClass, resolveElement instanceof PsiMethod ? (PsiMethod)resolveElement : null);
|
||||
boolean isReceiver = PsiMethodReferenceUtil.isReceiverType(functionalInterfaceType, containingClass, resolveElement instanceof PsiMethod ? (PsiMethod)resolveElement : null);
|
||||
|
||||
final PsiElement referenceNameElement = referenceExpression.getReferenceNameElement();
|
||||
if (isReceiver){
|
||||
|
||||
Reference in New Issue
Block a user