mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-18 09:34:34 +07:00
JavaCompletionUtil: use findMethodInSuperClassBySignatureInDerived
Review ID: IDEA-CR-27564
This commit is contained in:
@@ -44,7 +44,6 @@ import com.intellij.util.containers.ContainerUtil;
|
|||||||
import com.intellij.util.containers.JBIterable;
|
import com.intellij.util.containers.JBIterable;
|
||||||
import com.siyeh.ig.psiutils.SideEffectChecker;
|
import com.siyeh.ig.psiutils.SideEffectChecker;
|
||||||
import gnu.trove.THashSet;
|
import gnu.trove.THashSet;
|
||||||
import one.util.streamex.StreamEx;
|
|
||||||
import org.jetbrains.annotations.Contract;
|
import org.jetbrains.annotations.Contract;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -365,12 +364,13 @@ public class JavaCompletionUtil {
|
|||||||
PsiMethod method = (PsiMethod)o;
|
PsiMethod method = (PsiMethod)o;
|
||||||
PsiClassType.ClassResolveResult plainResult = ((PsiClassType)plainQualifier).resolveGenerics();
|
PsiClassType.ClassResolveResult plainResult = ((PsiClassType)plainQualifier).resolveGenerics();
|
||||||
PsiClass plainClass = plainResult.getElement();
|
PsiClass plainClass = plainResult.getElement();
|
||||||
HierarchicalMethodSignature signature = method.getHierarchicalMethodSignature();
|
PsiClass castClass = ((PsiClassType)castType).resolveGenerics().getElement();
|
||||||
if (plainClass != null && StreamEx.of(signature.getSuperSignatures()).prepend(signature)
|
|
||||||
.anyMatch(sig -> MethodSignatureUtil.findMethodBySignature(plainClass, sig, true) != null)) {
|
|
||||||
PsiClass castClass = ((PsiClassType)castType).resolveGenerics().getElement();
|
|
||||||
|
|
||||||
if (castClass == null || !castClass.isInheritor(plainClass, true)) {
|
if (plainClass != null && castClass != null &&
|
||||||
|
MethodSignatureUtil.findMethodInSuperClassBySignatureInDerived(
|
||||||
|
castClass, plainClass, method.getSignature(plainResult.getSubstitutor()), true) != null) {
|
||||||
|
|
||||||
|
if (!castClass.isInheritor(plainClass, true)) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user