mirror of
https://gitflic.ru/project/openide/openide.git
synced 2025-12-16 14:23:28 +07:00
Java: performance - avoid expensive inheritor searches
GitOrigin-RevId: 213914d469b705358a05f8361280b2b55eb19331
This commit is contained in:
committed by
intellij-monorepo-bot
parent
159cf612e9
commit
2960f7659b
@@ -18,6 +18,7 @@ import com.intellij.refactoring.util.RefactoringUIUtil;
|
|||||||
import com.intellij.util.containers.ContainerUtil;
|
import com.intellij.util.containers.ContainerUtil;
|
||||||
import com.intellij.util.containers.MultiMap;
|
import com.intellij.util.containers.MultiMap;
|
||||||
import com.siyeh.IntentionPowerPackBundle;
|
import com.siyeh.IntentionPowerPackBundle;
|
||||||
|
import com.siyeh.ig.psiutils.DeclarationSearchUtils;
|
||||||
import one.util.streamex.EntryStream;
|
import one.util.streamex.EntryStream;
|
||||||
import org.jetbrains.annotations.NotNull;
|
import org.jetbrains.annotations.NotNull;
|
||||||
import org.jetbrains.annotations.Nullable;
|
import org.jetbrains.annotations.Nullable;
|
||||||
@@ -107,9 +108,11 @@ public class ConvertInterfaceToClassIntention extends PsiBasedModCommandAction<P
|
|||||||
if (!aClass.isInterface() || aClass.isAnnotationType()) {
|
if (!aClass.isInterface() || aClass.isAnnotationType()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
if (DeclarationSearchUtils.isTooExpensiveToSearch(aClass, false)) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
final SearchScope useScope = aClass.getUseScope();
|
final SearchScope useScope = aClass.getUseScope();
|
||||||
for (PsiClass inheritor :
|
for (PsiClass inheritor : ClassInheritorsSearch.search(aClass, useScope, true)) {
|
||||||
ClassInheritorsSearch.search(aClass, useScope, true)) {
|
|
||||||
if (inheritor.isInterface()) {
|
if (inheritor.isInterface()) {
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user