mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: avoid recursion prevention when checking imported vs inherited superclass (IDEA-67385, IDEA-228814)
GitOrigin-RevId: 2a246ced1d66c4c3c9df71dcd51a491b471a744c
This commit is contained in:
committed by
intellij-monorepo-bot
parent
b36538cfa5
commit
4b12b7a4e3
+3
@@ -190,6 +190,9 @@ public class ClassResolverProcessor implements PsiScopeProcessor, NameHint, Elem
|
||||
|
||||
private boolean isAmbiguousInherited(PsiClass containingClass1) {
|
||||
PsiClass psiClass = PsiTreeUtil.getContextOfType(myPlace, PsiClass.class);
|
||||
if (psiClass instanceof PsiAnonymousClass && myPlace == ((PsiAnonymousClass)psiClass).getBaseClassReference()) {
|
||||
psiClass = PsiTreeUtil.getContextOfType(psiClass, PsiClass.class);
|
||||
}
|
||||
while (psiClass != null) {
|
||||
if (psiClass.isInheritor(containingClass1, false)) {
|
||||
return true;
|
||||
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
package p;
|
||||
|
||||
public class BaseImpl implements Base {
|
||||
static class Inner implements Inner { }
|
||||
static class Inner implements Base.Inner { }
|
||||
}
|
||||
+1
-1
@@ -1,5 +1,5 @@
|
||||
package p;
|
||||
|
||||
public class BaseImpl implements Base {
|
||||
static class Inner implements BaseImpl.Inner { }
|
||||
static class Inner implements Base.Inner { }
|
||||
}
|
||||
@@ -388,7 +388,6 @@ public class RecursionManager {
|
||||
"com.intellij.psi.impl.source.tree.java.MethodReferenceResolver.resolve(",
|
||||
"com.intellij.psi.impl.source.resolve.graphInference.PsiPolyExpressionUtil.isPolyExpression(",
|
||||
// inner class imports
|
||||
"com.intellij.psi.impl.source.resolve.ClassResolverProcessor.isAmbiguousInherited(",
|
||||
"com.intellij.psi.impl.source.PsiJavaFileBaseImpl.processDeclarations(",
|
||||
"com.intellij.psi.impl.PsiClassImplUtil.getScopeCorrectedSuperTypes(",
|
||||
"com.intellij.psi.impl.source.PsiImportStaticReferenceElementImpl.multiResolve(",
|
||||
|
||||
Reference in New Issue
Block a user