Drop ClassKind.CLASS_OBJECT
Default and non-default objects now have ClassKind.OBJECT
This commit is contained in:
@@ -81,8 +81,8 @@ public class DescriptorSerializer {
|
||||
public ProtoBuf.Class.Builder classProto(@NotNull ClassDescriptor classDescriptor) {
|
||||
ProtoBuf.Class.Builder builder = ProtoBuf.Class.newBuilder();
|
||||
|
||||
int flags = Flags.getClassFlags(hasAnnotations(classDescriptor), classDescriptor.getVisibility(),
|
||||
classDescriptor.getModality(), classDescriptor.getKind(), classDescriptor.isInner());
|
||||
int flags = Flags.getClassFlags(hasAnnotations(classDescriptor), classDescriptor.getVisibility(), classDescriptor.getModality(),
|
||||
classDescriptor.getKind(), classDescriptor.isInner(), classDescriptor.isDefaultObject());
|
||||
builder.setFlags(flags);
|
||||
|
||||
builder.setFqName(getClassId(classDescriptor));
|
||||
|
||||
@@ -73,17 +73,20 @@ public class Flags {
|
||||
Visibility visibility,
|
||||
Modality modality,
|
||||
ClassKind kind,
|
||||
boolean inner
|
||||
boolean inner,
|
||||
boolean isDefaultObject
|
||||
) {
|
||||
return HAS_ANNOTATIONS.toFlags(hasAnnotations)
|
||||
| MODALITY.toFlags(modality(modality))
|
||||
| VISIBILITY.toFlags(visibility(visibility))
|
||||
| CLASS_KIND.toFlags(classKind(kind))
|
||||
| CLASS_KIND.toFlags(classKind(kind, isDefaultObject))
|
||||
| INNER.toFlags(inner)
|
||||
;
|
||||
}
|
||||
|
||||
private static ProtoBuf.Class.Kind classKind(ClassKind kind) {
|
||||
private static ProtoBuf.Class.Kind classKind(ClassKind kind, boolean isDefaultObject) {
|
||||
if (isDefaultObject) return ProtoBuf.Class.Kind.CLASS_OBJECT;
|
||||
|
||||
switch (kind) {
|
||||
case CLASS:
|
||||
return ProtoBuf.Class.Kind.CLASS;
|
||||
@@ -97,8 +100,6 @@ public class Flags {
|
||||
return ProtoBuf.Class.Kind.ANNOTATION_CLASS;
|
||||
case OBJECT:
|
||||
return ProtoBuf.Class.Kind.OBJECT;
|
||||
case CLASS_OBJECT:
|
||||
return ProtoBuf.Class.Kind.CLASS_OBJECT;
|
||||
}
|
||||
throw new IllegalArgumentException("Unknown class kind: " + kind);
|
||||
}
|
||||
|
||||
+4
-2
@@ -45,7 +45,9 @@ public class DeserializedClassDescriptor(
|
||||
) {
|
||||
private val modality = deserialization.modality(Flags.MODALITY.get(classProto.getFlags()))
|
||||
private val visibility = deserialization.visibility(Flags.VISIBILITY.get(classProto.getFlags()))
|
||||
private val kind = deserialization.classKind(Flags.CLASS_KIND.get(classProto.getFlags()))
|
||||
private val kindFromProto = Flags.CLASS_KIND.get(classProto.getFlags())
|
||||
private val kind = deserialization.classKind(kindFromProto)
|
||||
private val isDefault = kindFromProto == ProtoBuf.Class.Kind.CLASS_OBJECT
|
||||
private val isInner = Flags.INNER.get(classProto.getFlags())
|
||||
|
||||
val c = outerContext.childContext(this, classProto.getTypeParameterList(), nameResolver)
|
||||
@@ -88,7 +90,7 @@ public class DeserializedClassDescriptor(
|
||||
|
||||
override fun getStaticScope() = staticScope
|
||||
|
||||
override fun isDefaultObject(): Boolean = getKind() == ClassKind.CLASS_OBJECT
|
||||
override fun isDefaultObject(): Boolean = isDefault
|
||||
|
||||
private fun computePrimaryConstructor(): ConstructorDescriptor? {
|
||||
if (!classProto.hasPrimaryConstructor()) return null
|
||||
|
||||
+1
-2
@@ -52,8 +52,7 @@ public fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
|
||||
ProtoBuf.Class.Kind.ENUM_CLASS -> ClassKind.ENUM_CLASS
|
||||
ProtoBuf.Class.Kind.ENUM_ENTRY -> ClassKind.ENUM_ENTRY
|
||||
ProtoBuf.Class.Kind.ANNOTATION_CLASS -> ClassKind.ANNOTATION_CLASS
|
||||
ProtoBuf.Class.Kind.OBJECT -> ClassKind.OBJECT
|
||||
ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.CLASS_OBJECT
|
||||
ProtoBuf.Class.Kind.OBJECT, ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.OBJECT
|
||||
}
|
||||
|
||||
fun variance(variance: TypeParameter.Variance) = when (variance) {
|
||||
|
||||
Reference in New Issue
Block a user