Always create descriptors for class object psi element in lazy resolve

KT-4397 Exception: @NotNull method org/jetbrains/jet/lang/resolve/lazy/ResolveSession.getClassDescriptor must not return null

 #KT-4397 Fixed
This commit is contained in:
Nikolay Krasko
2014-01-11 23:44:41 +04:00
parent 4928ff575d
commit c0187ffcd1
9 changed files with 65 additions and 30 deletions
@@ -310,22 +310,6 @@ public class DescriptorUtils {
return superClassDescriptor.equals(KotlinBuiltIns.getInstance().getAny());
}
public static boolean inStaticContext(@NotNull DeclarationDescriptor descriptor) {
DeclarationDescriptor containingDeclaration = descriptor.getContainingDeclaration();
if (containingDeclaration instanceof PackageFragmentDescriptor) {
return true;
}
if (containingDeclaration instanceof ClassDescriptor) {
ClassDescriptor classDescriptor = (ClassDescriptor) containingDeclaration;
if (classDescriptor.getKind().isSingleton()) {
return inStaticContext(classDescriptor.getContainingDeclaration());
}
}
return false;
}
public static boolean isEnumClassObject(@NotNull DeclarationDescriptor descriptor) {
if (descriptor instanceof ClassDescriptor && ((ClassDescriptor) descriptor).getKind() == ClassKind.CLASS_OBJECT) {
DeclarationDescriptor containing = descriptor.getContainingDeclaration();