Retrieve JetClassObject element by stub in ResolveSession#getClassDescriptor()
This commit is contained in:
@@ -101,6 +101,14 @@ public class JetObjectDeclaration extends JetNamedDeclarationStub<PsiJetObjectSt
|
||||
return parent != null && parent.getNode().getElementType().equals(JetNodeTypes.CLASS_OBJECT);
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public JetClassObject getClassObjectElement() {
|
||||
if (!isClassObject()) {
|
||||
return null;
|
||||
}
|
||||
return (JetClassObject) getParentByStub();
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasModifier(JetModifierKeywordToken modifier) {
|
||||
JetModifierList modifierList = getModifierList();
|
||||
|
||||
@@ -256,8 +256,12 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
||||
@Override
|
||||
@NotNull
|
||||
public ClassDescriptor getClassDescriptor(@NotNull JetClassOrObject classOrObject) {
|
||||
if (classOrObject.getParent() instanceof JetClassObject) {
|
||||
return getClassObjectDescriptor((JetClassObject) classOrObject.getParent());
|
||||
if (classOrObject instanceof JetObjectDeclaration) {
|
||||
JetObjectDeclaration objectDeclaration = (JetObjectDeclaration) classOrObject;
|
||||
JetClassObject classObjectElement = objectDeclaration.getClassObjectElement();
|
||||
if (classObjectElement != null) {
|
||||
return getClassObjectDescriptor(classObjectElement);
|
||||
}
|
||||
}
|
||||
JetScope resolutionScope = getScopeProvider().getResolutionScopeForDeclaration(classOrObject);
|
||||
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
|
||||
|
||||
Reference in New Issue
Block a user