Minor. Moved deserialized util functions from top-level to object

This commit is contained in:
Stanislav Erokhin
2015-09-04 21:37:09 +03:00
parent bcb88d78dd
commit 377f752837
7 changed files with 68 additions and 58 deletions
@@ -50,11 +50,11 @@ public class MemberDeserializer(private val c: DeserializationContext) {
val property = DeserializedPropertyDescriptor(
c.containingDeclaration, null,
getAnnotations(proto, flags, AnnotatedCallableKind.PROPERTY),
modality(Flags.MODALITY.get(flags)),
visibility(Flags.VISIBILITY.get(flags)),
Deserialization.modality(Flags.MODALITY.get(flags)),
Deserialization.visibility(Flags.VISIBILITY.get(flags)),
Flags.CALLABLE_KIND.get(flags) == Callable.CallableKind.VAR,
c.nameResolver.getName(proto.getName()),
memberKind(Flags.MEMBER_KIND.get(flags)),
Deserialization.memberKind(Flags.MEMBER_KIND.get(flags)),
proto,
c.nameResolver,
Flags.LATE_INIT.get(flags)
@@ -82,8 +82,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
PropertyGetterDescriptorImpl(
property,
getAnnotations(proto, getterFlags, AnnotatedCallableKind.PROPERTY_GETTER),
modality(Flags.MODALITY.get(getterFlags)),
visibility(Flags.VISIBILITY.get(getterFlags)),
Deserialization.modality(Flags.MODALITY.get(getterFlags)),
Deserialization.visibility(Flags.VISIBILITY.get(getterFlags)),
/* hasBody = */ isNotDefault,
/* isDefault = */ !isNotDefault,
property.getKind(), null, SourceElement.NO_SOURCE
@@ -106,8 +106,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
val setter = PropertySetterDescriptorImpl(
property,
getAnnotations(proto, setterFlags, AnnotatedCallableKind.PROPERTY_SETTER),
modality(Flags.MODALITY.get(setterFlags)),
visibility(Flags.VISIBILITY.get(setterFlags)),
Deserialization.modality(Flags.MODALITY.get(setterFlags)),
Deserialization.visibility(Flags.VISIBILITY.get(setterFlags)),
/* hasBody = */ isNotDefault,
/* isDefault = */ !isNotDefault,
property.getKind(), null, SourceElement.NO_SOURCE
@@ -150,8 +150,8 @@ public class MemberDeserializer(private val c: DeserializationContext) {
local.typeDeserializer.ownTypeParameters,
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
local.typeDeserializer.type(proto.getReturnType()),
modality(Flags.MODALITY.get(proto.getFlags())),
visibility(Flags.VISIBILITY.get(proto.getFlags()))
Deserialization.modality(Flags.MODALITY.get(proto.getFlags())),
Deserialization.visibility(Flags.VISIBILITY.get(proto.getFlags()))
)
return function
}
@@ -170,7 +170,7 @@ public class MemberDeserializer(private val c: DeserializationContext) {
descriptor.initialize(
classDescriptor.getTypeConstructor().getParameters(),
local.memberDeserializer.valueParameters(proto, AnnotatedCallableKind.FUNCTION),
visibility(Flags.VISIBILITY.get(proto.getFlags()))
Deserialization.visibility(Flags.VISIBILITY.get(proto.getFlags()))
)
descriptor.setReturnType(local.typeDeserializer.type(proto.getReturnType()))
return descriptor
@@ -130,7 +130,7 @@ public class TypeDeserializer(
TypeBasedStarProjectionImpl(c.components.moduleDescriptor.builtIns.getNullableAnyType())
else
StarProjectionImpl(parameter)
else TypeProjectionImpl(variance(typeArgumentProto.getProjection()), type(typeArgumentProto.getType()))
else TypeProjectionImpl(Deserialization.variance(typeArgumentProto.getProjection()), type(typeArgumentProto.getType()))
}
override fun toString() = debugName + (if (parent == null) "" else ". Child of ${parent.debugName}")
@@ -30,7 +30,7 @@ import org.jetbrains.kotlin.resolve.scopes.JetScope
import org.jetbrains.kotlin.resolve.scopes.StaticScopeForKotlinClass
import org.jetbrains.kotlin.serialization.Flags
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization
import org.jetbrains.kotlin.serialization.deserialization.Deserialization
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext
import org.jetbrains.kotlin.serialization.deserialization.DeserializedType
import org.jetbrains.kotlin.serialization.deserialization.NameResolver
@@ -51,10 +51,10 @@ public class DeserializedClassDescriptor(
outerContext.storageManager,
nameResolver.getClassId(classProto.getFqName()).getShortClassName()
) {
private val modality = deserialization.modality(Flags.MODALITY.get(classProto.getFlags()))
private val visibility = deserialization.visibility(Flags.VISIBILITY.get(classProto.getFlags()))
private val modality = Deserialization.modality(Flags.MODALITY.get(classProto.getFlags()))
private val visibility = Deserialization.visibility(Flags.VISIBILITY.get(classProto.getFlags()))
private val kindFromProto = Flags.CLASS_KIND.get(classProto.getFlags())
private val kind = deserialization.classKind(kindFromProto)
private val kind = Deserialization.classKind(kindFromProto)
private val isCompanion = kindFromProto == ProtoBuf.Class.Kind.CLASS_OBJECT
private val isInner = Flags.INNER.get(classProto.getFlags())
@@ -28,6 +28,7 @@ import org.jetbrains.kotlin.descriptors.impl.SimpleFunctionDescriptorImpl;
import org.jetbrains.kotlin.name.Name;
import org.jetbrains.kotlin.serialization.Flags;
import org.jetbrains.kotlin.serialization.ProtoBuf;
import org.jetbrains.kotlin.serialization.deserialization.Deserialization;
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
import org.jetbrains.kotlin.serialization.deserialization.NameResolver;
@@ -98,7 +99,7 @@ public class DeserializedSimpleFunctionDescriptor extends SimpleFunctionDescript
null,
annotations,
nameResolver.getName(proto.getName()),
DeserializationPackage.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
Deserialization.memberKind(Flags.MEMBER_KIND.get(proto.getFlags())),
proto,
nameResolver
);
@@ -21,6 +21,7 @@ import org.jetbrains.kotlin.descriptors.SourceElement;
import org.jetbrains.kotlin.descriptors.annotations.Annotations;
import org.jetbrains.kotlin.descriptors.impl.AbstractLazyTypeParameterDescriptor;
import org.jetbrains.kotlin.serialization.ProtoBuf;
import org.jetbrains.kotlin.serialization.deserialization.Deserialization;
import org.jetbrains.kotlin.serialization.deserialization.DeserializationContext;
import org.jetbrains.kotlin.serialization.deserialization.DeserializationPackage;
import org.jetbrains.kotlin.serialization.deserialization.TypeDeserializer;
@@ -40,7 +41,7 @@ public class DeserializedTypeParameterDescriptor extends AbstractLazyTypeParamet
super(c.getStorageManager(),
c.getContainingDeclaration(),
c.getNameResolver().getName(proto.getName()),
DeserializationPackage.variance(proto.getVariance()),
Deserialization.variance(proto.getVariance()),
proto.getReified(),
index,
SourceElement.NO_SOURCE);
@@ -24,47 +24,55 @@ import org.jetbrains.kotlin.descriptors.ClassKind
import org.jetbrains.kotlin.serialization.ProtoBuf.TypeParameter
import org.jetbrains.kotlin.types.Variance
fun memberKind(memberKind: ProtoBuf.Callable.MemberKind) = when (memberKind) {
ProtoBuf.Callable.MemberKind.DECLARATION -> CallableMemberDescriptor.Kind.DECLARATION
ProtoBuf.Callable.MemberKind.FAKE_OVERRIDE -> CallableMemberDescriptor.Kind.FAKE_OVERRIDE
ProtoBuf.Callable.MemberKind.DELEGATION -> CallableMemberDescriptor.Kind.DELEGATION
ProtoBuf.Callable.MemberKind.SYNTHESIZED -> CallableMemberDescriptor.Kind.SYNTHESIZED
}
object Deserialization {
@JvmStatic
fun memberKind(memberKind: ProtoBuf.Callable.MemberKind) = when (memberKind) {
ProtoBuf.Callable.MemberKind.DECLARATION -> CallableMemberDescriptor.Kind.DECLARATION
ProtoBuf.Callable.MemberKind.FAKE_OVERRIDE -> CallableMemberDescriptor.Kind.FAKE_OVERRIDE
ProtoBuf.Callable.MemberKind.DELEGATION -> CallableMemberDescriptor.Kind.DELEGATION
ProtoBuf.Callable.MemberKind.SYNTHESIZED -> CallableMemberDescriptor.Kind.SYNTHESIZED
}
fun modality(modality: ProtoBuf.Modality) = when (modality) {
ProtoBuf.Modality.FINAL -> Modality.FINAL
ProtoBuf.Modality.OPEN -> Modality.OPEN
ProtoBuf.Modality.ABSTRACT -> Modality.ABSTRACT
ProtoBuf.Modality.SEALED -> Modality.SEALED
}
@JvmStatic
fun modality(modality: ProtoBuf.Modality) = when (modality) {
ProtoBuf.Modality.FINAL -> Modality.FINAL
ProtoBuf.Modality.OPEN -> Modality.OPEN
ProtoBuf.Modality.ABSTRACT -> Modality.ABSTRACT
ProtoBuf.Modality.SEALED -> Modality.SEALED
}
fun visibility(visibility: ProtoBuf.Visibility) = when (visibility) {
ProtoBuf.Visibility.INTERNAL -> Visibilities.INTERNAL
ProtoBuf.Visibility.PRIVATE -> Visibilities.PRIVATE
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
ProtoBuf.Visibility.LOCAL -> Visibilities.LOCAL
}
@JvmStatic
fun visibility(visibility: ProtoBuf.Visibility) = when (visibility) {
ProtoBuf.Visibility.INTERNAL -> Visibilities.INTERNAL
ProtoBuf.Visibility.PRIVATE -> Visibilities.PRIVATE
ProtoBuf.Visibility.PRIVATE_TO_THIS -> Visibilities.PRIVATE_TO_THIS
ProtoBuf.Visibility.PROTECTED -> Visibilities.PROTECTED
ProtoBuf.Visibility.PUBLIC -> Visibilities.PUBLIC
ProtoBuf.Visibility.LOCAL -> Visibilities.LOCAL
}
public fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
ProtoBuf.Class.Kind.CLASS -> ClassKind.CLASS
ProtoBuf.Class.Kind.TRAIT -> ClassKind.INTERFACE
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, ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.OBJECT
}
@JvmStatic
fun classKind(kind: ProtoBuf.Class.Kind): ClassKind = when (kind) {
ProtoBuf.Class.Kind.CLASS -> ClassKind.CLASS
ProtoBuf.Class.Kind.TRAIT -> ClassKind.INTERFACE
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, ProtoBuf.Class.Kind.CLASS_OBJECT -> ClassKind.OBJECT
}
fun variance(variance: TypeParameter.Variance) = when (variance) {
ProtoBuf.TypeParameter.Variance.IN -> Variance.IN_VARIANCE
ProtoBuf.TypeParameter.Variance.OUT -> Variance.OUT_VARIANCE
ProtoBuf.TypeParameter.Variance.INV -> Variance.INVARIANT
}
@JvmStatic
fun variance(variance: TypeParameter.Variance) = when (variance) {
ProtoBuf.TypeParameter.Variance.IN -> Variance.IN_VARIANCE
ProtoBuf.TypeParameter.Variance.OUT -> Variance.OUT_VARIANCE
ProtoBuf.TypeParameter.Variance.INV -> Variance.INVARIANT
}
fun variance(variance: ProtoBuf.Type.Argument.Projection) = when (variance) {
ProtoBuf.Type.Argument.Projection.IN -> Variance.IN_VARIANCE
ProtoBuf.Type.Argument.Projection.OUT -> Variance.OUT_VARIANCE
ProtoBuf.Type.Argument.Projection.INV -> Variance.INVARIANT
else -> throw IllegalArgumentException("Only IN, OUT and INV are supported. Actual argument: $variance")
}
@JvmStatic
fun variance(variance: ProtoBuf.Type.Argument.Projection) = when (variance) {
ProtoBuf.Type.Argument.Projection.IN -> Variance.IN_VARIANCE
ProtoBuf.Type.Argument.Projection.OUT -> Variance.OUT_VARIANCE
ProtoBuf.Type.Argument.Projection.INV -> Variance.INVARIANT
else -> throw IllegalArgumentException("Only IN, OUT and INV are supported. Actual argument: $variance")
}
}
@@ -48,7 +48,7 @@ import org.jetbrains.kotlin.resolve.jvm.JvmClassName
import org.jetbrains.kotlin.resolve.jvm.JvmClassName.byInternalName
import org.jetbrains.kotlin.serialization.Flags
import org.jetbrains.kotlin.serialization.ProtoBuf
import org.jetbrains.kotlin.serialization.deserialization.visibility
import org.jetbrains.kotlin.serialization.deserialization.Deserialization
import org.jetbrains.kotlin.serialization.jvm.BitEncoding
import org.jetbrains.kotlin.serialization.jvm.JvmProtoBufUtil
import org.jetbrains.org.objectweb.asm.*
@@ -399,7 +399,7 @@ public class IncrementalCacheImpl(
return true
}
private fun ProtoBuf.Callable.isPrivate(): Boolean = Visibilities.isPrivate(visibility(Flags.VISIBILITY.get(flags)))
private fun ProtoBuf.Callable.isPrivate(): Boolean = Visibilities.isPrivate(Deserialization.visibility(Flags.VISIBILITY.get(flags)))
}
return compareObject.checkEquals(oldClassData.classProto, newClassData.classProto)