Drop ClassKind.CLASS_OBJECT
Default and non-default objects now have ClassKind.OBJECT
This commit is contained in:
+4
-1
@@ -70,6 +70,8 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class
|
||||
@NotNull SourceElement source
|
||||
) {
|
||||
super(LockBasedStorageManager.NO_LOCKS, containingDeclaration, name, source);
|
||||
assert kind != ClassKind.OBJECT : "Fix isDefaultObject()";
|
||||
|
||||
this.kind = kind;
|
||||
this.isInner = isInner;
|
||||
|
||||
@@ -145,7 +147,8 @@ public class MutableClassDescriptor extends ClassDescriptorBase implements Class
|
||||
|
||||
@Override
|
||||
public boolean isDefaultObject() {
|
||||
return getKind() == ClassKind.CLASS_OBJECT;
|
||||
//TODO:
|
||||
return false;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
@@ -32,9 +32,7 @@ public class JetObjectInfo extends JetClassOrObjectInfo<JetObjectDeclaration> {
|
||||
|
||||
protected JetObjectInfo(@NotNull JetObjectDeclaration element) {
|
||||
super(element);
|
||||
this.kind = element.isObjectLiteral()
|
||||
? ClassKind.CLASS
|
||||
: (element.isDefault() ? ClassKind.CLASS_OBJECT : ClassKind.OBJECT);
|
||||
this.kind = element.isObjectLiteral() ? ClassKind.CLASS : ClassKind.OBJECT;
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -59,4 +57,8 @@ public class JetObjectInfo extends JetClassOrObjectInfo<JetObjectDeclaration> {
|
||||
public ClassKind getClassKind() {
|
||||
return kind;
|
||||
}
|
||||
|
||||
public boolean isDefaultObject() {
|
||||
return element.isDefault();
|
||||
}
|
||||
}
|
||||
|
||||
+4
-1
@@ -42,6 +42,7 @@ import org.jetbrains.kotlin.resolve.lazy.LazyEntity;
|
||||
import org.jetbrains.kotlin.resolve.lazy.data.JetClassInfoUtil;
|
||||
import org.jetbrains.kotlin.resolve.lazy.data.JetClassLikeInfo;
|
||||
import org.jetbrains.kotlin.resolve.lazy.data.JetClassOrObjectInfo;
|
||||
import org.jetbrains.kotlin.resolve.lazy.data.JetObjectInfo;
|
||||
import org.jetbrains.kotlin.resolve.lazy.declarations.ClassMemberDeclarationProvider;
|
||||
import org.jetbrains.kotlin.resolve.scopes.*;
|
||||
import org.jetbrains.kotlin.storage.MemoizedFunctionToNotNull;
|
||||
@@ -92,6 +93,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
private final NotNullLazyValue<JetScope> scopeForPropertyInitializerResolution;
|
||||
|
||||
private final NullableLazyValue<Void> forceResolveAllContents;
|
||||
private final boolean isDefaultObject;
|
||||
|
||||
public LazyClassDescriptor(
|
||||
@NotNull LazyClassContext c,
|
||||
@@ -118,6 +120,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
this.typeConstructor = new LazyClassTypeConstructor();
|
||||
|
||||
this.kind = classLikeInfo.getClassKind();
|
||||
this.isDefaultObject = classLikeInfo instanceof JetObjectInfo && ((JetObjectInfo) classLikeInfo).isDefaultObject();
|
||||
|
||||
JetModifierList modifierList = classLikeInfo.getModifierList();
|
||||
if (kind.isSingleton()) {
|
||||
@@ -441,7 +444,7 @@ public class LazyClassDescriptor extends ClassDescriptorBase implements ClassDes
|
||||
|
||||
@Override
|
||||
public boolean isDefaultObject() {
|
||||
return getKind() == ClassKind.CLASS_OBJECT;
|
||||
return isDefaultObject;
|
||||
}
|
||||
|
||||
@NotNull
|
||||
|
||||
+1
-2
@@ -303,8 +303,7 @@ public open class LazyClassMemberScope(
|
||||
ClassKind.ANNOTATION_CLASS,
|
||||
ClassKind.OBJECT,
|
||||
ClassKind.ENUM_CLASS,
|
||||
ClassKind.ENUM_ENTRY,
|
||||
ClassKind.CLASS_OBJECT)
|
||||
ClassKind.ENUM_ENTRY)
|
||||
|
||||
private val EXTRACT_FUNCTIONS: MemberExtractor<FunctionDescriptor> = object : MemberExtractor<FunctionDescriptor> {
|
||||
override fun extract(extractFrom: JetType, name: Name): Collection<FunctionDescriptor> {
|
||||
|
||||
@@ -264,8 +264,8 @@ public class DescriptorValidator {
|
||||
}
|
||||
|
||||
ClassDescriptor defaultObjectDescriptor = descriptor.getDefaultObjectDescriptor();
|
||||
if (defaultObjectDescriptor != null && defaultObjectDescriptor.getKind() != ClassKind.CLASS_OBJECT) {
|
||||
report(collector, defaultObjectDescriptor, "Default object should be of kind " + ClassKind.CLASS_OBJECT);
|
||||
if (defaultObjectDescriptor != null && !defaultObjectDescriptor.isDefaultObject()) {
|
||||
report(collector, defaultObjectDescriptor, "Default object should be marked as such");
|
||||
}
|
||||
|
||||
return true;
|
||||
|
||||
Reference in New Issue
Block a user