Introduce ClassKind#CLASS_OBJECT and ClassKind#isObject and usages.

Rename LazyClassDescriptor#onlyEnumEntries -> enumClassObjectInfo.
Determine ClassKind in JetClassInfo and JetObjectInfo constructor.
Remove complex constructor for enum entry in enum test.
Logic simplified in LazyClassMemberScope.
Minor refactorings.
This commit is contained in:
Pavel V. Talanov
2012-08-27 14:21:53 +04:00
parent b228fd66e0
commit 6132946ced
25 changed files with 130 additions and 122 deletions
@@ -451,7 +451,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
PsiMethod[] psiConstructors = psiClass.getConstructors();
boolean isStatic = psiClass.hasModifierProperty(PsiModifier.STATIC);
if (classData.classDescriptor.getKind() == ClassKind.OBJECT) {
if (classData.classDescriptor.getKind() == ClassKind.OBJECT || classData.classDescriptor.getKind() == ClassKind.CLASS_OBJECT) {
// TODO: wrong: class objects do not need visible constructors
ConstructorDescriptorImpl constructor = new ConstructorDescriptorImpl(classData.classDescriptor, new ArrayList<AnnotationDescriptor>(0), true);
Visibility visibility = psiConstructors.length != 0
@@ -592,7 +592,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
FqName fqName = new FqName(classObjectPsiClass.getQualifiedName());
ResolverClassData classData = new ClassDescriptorFromJvmBytecode(
containing, ClassKind.OBJECT, classObjectPsiClass, fqName, this)
containing, ClassKind.CLASS_OBJECT, classObjectPsiClass, fqName, this)
.getResolverBinaryClassData();
ClassDescriptorFromJvmBytecode classObjectDescriptor = classData.classDescriptor;
@@ -608,7 +608,7 @@ public class JavaDescriptorResolver implements DependencyClassByQualifiedNameRes
assert psiClassQualifiedName != null : "Reading java class with no qualified name";
FqNameUnsafe fqName = new FqNameUnsafe(psiClassQualifiedName + "." + getClassObjectName(psiClass.getName()).getName());
ClassDescriptorFromJvmBytecode classObjectDescriptor = new ClassDescriptorFromJvmBytecode(
containing, ClassKind.OBJECT, psiClass, null, this);
containing, ClassKind.CLASS_OBJECT, psiClass, null, this);
ResolverEnumClassObjectClassData data = new ResolverEnumClassObjectClassData(psiClass, null, classObjectDescriptor);
setUpClassObjectDescriptor(containing, fqName, data, getClassObjectName(containing.getName().getName()));