mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
EA-55521 - IAE: TypeConversionUtil.getSuperClassSubstitutor
This commit is contained in:
@@ -32,9 +32,7 @@ import com.intellij.psi.javadoc.PsiDocComment;
|
||||
import com.intellij.psi.scope.processor.VariablesProcessor;
|
||||
import com.intellij.psi.scope.util.PsiScopesUtil;
|
||||
import com.intellij.psi.util.*;
|
||||
import com.intellij.util.ArrayUtil;
|
||||
import com.intellij.util.IncorrectOperationException;
|
||||
import com.intellij.util.containers.ContainerUtil;
|
||||
import com.intellij.util.containers.HashMap;
|
||||
import com.intellij.util.containers.HashSet;
|
||||
import org.jetbrains.annotations.NonNls;
|
||||
@@ -263,7 +261,7 @@ public class GenerateDelegateHandler implements LanguageCodeInsightActionHandler
|
||||
superSubstitutor = TypeConversionUtil.getSuperClassSubstitutor(superClass, targetClass, substitutor);
|
||||
superSubstitutors.put(superClass, superSubstitutor);
|
||||
}
|
||||
PsiSubstitutor methodSubstitutor = OverrideImplementUtil.correctSubstitutor(method, superSubstitutor);
|
||||
PsiSubstitutor methodSubstitutor = OverrideImplementExploreUtil.correctSubstitutor(method, superSubstitutor);
|
||||
MethodSignature signature = method.getSignature(methodSubstitutor);
|
||||
if (!signatures.contains(signature)) {
|
||||
signatures.add(signature);
|
||||
@@ -357,14 +355,16 @@ public class GenerateDelegateHandler implements LanguageCodeInsightActionHandler
|
||||
final PsiType type = field.getType();
|
||||
if (helper.isAccessible(field, aClass, aClass) && type instanceof PsiClassType && !PsiTreeUtil.isAncestor(field, element, false)) {
|
||||
final PsiClass containingClass = field.getContainingClass();
|
||||
result.add(new PsiFieldMember(field, TypeConversionUtil.getSuperClassSubstitutor(containingClass, aClass, PsiSubstitutor.EMPTY)));
|
||||
if (containingClass != null) {
|
||||
result.add(new PsiFieldMember(field, TypeConversionUtil.getSuperClassSubstitutor(containingClass, aClass, PsiSubstitutor.EMPTY)));
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
final PsiMethod[] methods = aClass.getAllMethods();
|
||||
for (PsiMethod method : methods) {
|
||||
final PsiClass containingClass = method.getContainingClass();
|
||||
if (CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) continue;
|
||||
if (containingClass == null || CommonClassNames.JAVA_LANG_OBJECT.equals(containingClass.getQualifiedName())) continue;
|
||||
final PsiType returnType = method.getReturnType();
|
||||
if (returnType != null && PropertyUtil.isSimplePropertyGetter(method) && helper.isAccessible(method, aClass, aClass) &&
|
||||
returnType instanceof PsiClassType && !PsiTreeUtil.isAncestor(method, element, false)) {
|
||||
|
||||
Reference in New Issue
Block a user