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);
|
return parent != null && parent.getNode().getElementType().equals(JetNodeTypes.CLASS_OBJECT);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Nullable
|
||||||
|
public JetClassObject getClassObjectElement() {
|
||||||
|
if (!isClassObject()) {
|
||||||
|
return null;
|
||||||
|
}
|
||||||
|
return (JetClassObject) getParentByStub();
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public boolean hasModifier(JetModifierKeywordToken modifier) {
|
public boolean hasModifier(JetModifierKeywordToken modifier) {
|
||||||
JetModifierList modifierList = getModifierList();
|
JetModifierList modifierList = getModifierList();
|
||||||
|
|||||||
@@ -256,8 +256,12 @@ public class ResolveSession implements KotlinCodeAnalyzer {
|
|||||||
@Override
|
@Override
|
||||||
@NotNull
|
@NotNull
|
||||||
public ClassDescriptor getClassDescriptor(@NotNull JetClassOrObject classOrObject) {
|
public ClassDescriptor getClassDescriptor(@NotNull JetClassOrObject classOrObject) {
|
||||||
if (classOrObject.getParent() instanceof JetClassObject) {
|
if (classOrObject instanceof JetObjectDeclaration) {
|
||||||
return getClassObjectDescriptor((JetClassObject) classOrObject.getParent());
|
JetObjectDeclaration objectDeclaration = (JetObjectDeclaration) classOrObject;
|
||||||
|
JetClassObject classObjectElement = objectDeclaration.getClassObjectElement();
|
||||||
|
if (classObjectElement != null) {
|
||||||
|
return getClassObjectDescriptor(classObjectElement);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
JetScope resolutionScope = getScopeProvider().getResolutionScopeForDeclaration(classOrObject);
|
JetScope resolutionScope = getScopeProvider().getResolutionScopeForDeclaration(classOrObject);
|
||||||
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
|
Name name = safeNameForLazyResolve(classOrObject.getNameAsName());
|
||||||
|
|||||||
Reference in New Issue
Block a user