mirror of
https://gitflic.ru/project/openide/openide.git
synced 2026-09-27 10:03:11 +07:00
java: RefClass optimization
GitOrigin-RevId: 24d7d819d06f154547f6a406d0fc84abdf4e4377
This commit is contained in:
committed by
intellij-monorepo-bot
parent
a0aaa369c9
commit
02f130cf0e
+21
-21
@@ -107,13 +107,15 @@ public final class RefClassImpl extends RefJavaElementImpl implements RefClass {
|
||||
if (!myManager.isDeclarationsFound()) return;
|
||||
|
||||
setInterface(uClass.isInterface());
|
||||
setAnnotationType(uClass.isAnnotationType());
|
||||
setAnonymous(uClass instanceof UAnonymousClass);
|
||||
final PsiClass psiClass = uClass.getJavaPsi();
|
||||
setRecord(psiClass.isRecord());
|
||||
setAnnotationType(psiClass.isAnnotationType());
|
||||
setEnum(psiClass.isEnum());
|
||||
setAbstract(psiClass.hasModifier(JvmModifier.ABSTRACT));
|
||||
setAnonymous(uClass.getName() == null);
|
||||
setLocal(!isAnonymous() && parent != null && !(parent instanceof UClass));
|
||||
if (!isAnonymous()) {
|
||||
setRecord(psiClass.isRecord());
|
||||
setEnum(psiClass.isEnum());
|
||||
setAbstract(psiClass.hasModifier(JvmModifier.ABSTRACT));
|
||||
setLocal(parent != null && !(parent instanceof UClass));
|
||||
}
|
||||
|
||||
initializeSuperReferences(uClass);
|
||||
|
||||
@@ -160,7 +162,7 @@ public final class RefClassImpl extends RefJavaElementImpl implements RefClass {
|
||||
}
|
||||
}
|
||||
|
||||
if (!memberSeen || uClass.isInterface() || psiClass.isRecord() || psiClass instanceof PsiAnonymousClass) {
|
||||
if (!memberSeen || isInterface() || isRecord() || isAnonymous()) {
|
||||
utilityClass = false;
|
||||
}
|
||||
if (!utilityClass && psiClass.getLanguage().isKindOf("kotlin")) {
|
||||
@@ -174,7 +176,7 @@ public final class RefClassImpl extends RefJavaElementImpl implements RefClass {
|
||||
}
|
||||
}
|
||||
|
||||
if (!isInterface() && !isAnonymous() && !isEnum() && !constructorSeen) {
|
||||
if (!isInterface() && !isAnonymous() && !isEnum() && !isRecord() && !constructorSeen) {
|
||||
setDefaultConstructor(new RefImplicitConstructorImpl(this));
|
||||
}
|
||||
|
||||
@@ -201,19 +203,17 @@ public final class RefClassImpl extends RefJavaElementImpl implements RefClass {
|
||||
}
|
||||
|
||||
private void initializeSuperReferences(UClass uClass) {
|
||||
if (!isSelfInheritor(uClass)) {
|
||||
uClass.getUastSuperTypes().stream()
|
||||
.map(t -> PsiUtil.resolveClassInClassTypeOnly(t.getType()))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(c -> getRefJavaManager().belongsToScope(c))
|
||||
.forEach(c -> {
|
||||
RefClassImpl refClass = (RefClassImpl)getRefManager().getReference(c);
|
||||
if (refClass != null) {
|
||||
addBaseClass(refClass);
|
||||
getRefManager().executeTask(() -> refClass.addDerivedReference(this));
|
||||
}
|
||||
});
|
||||
}
|
||||
uClass.getUastSuperTypes().stream()
|
||||
.map(t -> PsiUtil.resolveClassInClassTypeOnly(t.getType()))
|
||||
.filter(Objects::nonNull)
|
||||
.filter(c -> getRefJavaManager().belongsToScope(c))
|
||||
.forEach(c -> {
|
||||
RefClassImpl refClass = (RefClassImpl)getRefManager().getReference(c);
|
||||
if (refClass != null) {
|
||||
addBaseClass(refClass);
|
||||
getRefManager().executeTask(() -> refClass.addDerivedReference(this));
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
|
||||
Reference in New Issue
Block a user